Identifiers:

 
<identifier>      ::= <id character>
                    | <identifier> <id character>
                    | <identifier> <decimal digit> 

<id character>    ::= <letter> | <break character>

<letter>          ::= A|B|C ... |Z|a|b|c ... |z

<decimal digit>   ::= 0|1| ... |9

<break character> ::= _ | @ | # | $
  
 
An identifier is a sequence of 1 to 256 characters from the set of letters, digits, and break characters, beginning with a letter. Case is significant.
The following words are reserved and cannot be used as identifiers:
 BIT DECLARE GOTO PROCEDURE
 BY ELSE IF RETURN
 CALL END INITIAL THEN
 CASE EOF LABEL TO
 CHARACTER FIXED LITERALLY WHILE
 DO GO MOD  
(Some implementations use upper-case reserved words, some lower-case, never both.)

The following are valid identifiers:


  B
  n3
  X_5
  a@1
  This_is_a_valid_identifier

The following are not valid identifiers:


  1A
  99#
  _._
  b b
  X.Y