Optional case insensitivity

In contrast with earlier revisions of the report [2], the syntax of data distinguishes upper and lower case in identifiers and in characters specified via their names. For example, the identifiers X and x are different, and the character #\space cannot be written #\SPACE.

Implementors may wish to support case-insensitive syntax for backward compatibility or other reasons. If they do so, they should adopt the following directives to control case folding.


These directives may appear anywhere comments may appear and are treated as comments, except that they affect the reading of subsequent lexemes. The #!fold-case causes the reader to case-fold (see library section on ““Unicode””) each <identifier> and <character name>. The #!no-fold-case directive causes the reader to return to the default, non-folding behavior.