lexer accepts '_' as a valid alphanumeric character