In English speaking countries, chess notation (.pgn) looks something like this:
Code:
1. d4 Nf6 2. Nf3 g6 3. Nc3 d5 4. Bf4 Bg7 5. e3 O-O 6. Be2 b6 7. Ne5 Bb7
8. h4 Nbd7 9. f3 Nxe5 10. Bxe5 Ne8 11. Bxg7 Nxg7 12. f4 e5 13. fxe5 f6
14. Bf3 fxe5 15. dxe5 c6 16. Qd2 Qe8 17. O-O-O Rd8 18. h5 gxh5 19. Qd4 c5
20. Qh4 Qxe5
The letters for the pieces (KQBNR) are converted to symbols as found in a diagram for international audiences using high ascii in specialized fonts.

The regular expression for a typical move should look something like this: /([BKNRQ])([a-h1-8]?x?[a-h][1-8])/ and a pawn promotion /([a-h]?x?[a-h][18]=)([BNRQ])/ . A brute strength method of looking at all upper case letters wouldn't work when there are comments such as "Note the Queen is hanging." and symbols shouldn't be substituted for the N and Q outside of a move.

I am at a loss as to how to do this when there are many moves on a line.

TIA