Make sure to check the result of the #reserved? property (GH-340)
Reuse the result of the parser (GH-340)
Extract the pattern into an option

This removes circular dependency between the parser and the scanner.