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.

 _  _ _  _  
(_|| | |(_|><