in reply to
Parsing Chess Algebra Notation
Before reinventing you own wheel, please have a look at Chess::PGN::Parse (containing, among other things, regexes to validate chess moves), Chess::PGN::EPD (containing the moves logic), Chess::PGN::Moves, and Chess::PGN::Filter.
Although they were developed by two different authors, they were planned together and developed as a unique tool.
As for the technique, A demanding parser and Perl, Chess, Lies, Damn Lies, and Statistics could be useful as well.