# Identifiers

> **Lexer:**  
> IDENTIFIER_OR_KEYWORD :  
>       [`a`-`z` `A`-`Z`] [`a`-`z` `A`-`Z` `0`-`9` `_`]\*  
>    | `_` [`a`-`z` `A`-`Z` `0`-`9` `_`]+  
>  
> IDENTIFIER :  
> IDENTIFIER_OR_KEYWORD *Except a [strict] or [reserved] keyword*

An identifier is any nonempty ASCII string of the following form:

Either

* The first character is a letter.
* The remaining characters are alphanumeric or `_`.

Or

* The first character is `_`.
* The identifier is more than one character. `_` alone is not an identifier.
* The remaining characters are alphanumeric or `_`.

[strict]: keywords.html#strict-keywords
[reserved]: keywords.html#reserved-keywords
