#### CASMOD

#### Synopsis

    HELP:   Default case handling for character conversion [NONE]
    TYPE:   NUMBER
    SYNTAX: CASMOD=UPPER/LOWER/FOLD/SUPPER/SLOWER/USRTAB

#### Description

With the case modifier, you can perform conversion to upper or lower case as well as apply case folding and some special case conversions.

Case folding converts all characters to lower case but is more compatible with language specific rules for doing so. For example, this may be useful for case-insensitive string comparison if the strings contain non-Latin characters (code point < 128).

This mapping is done for each code point in front of substitution or transliteration. The respective case is accomplished on the basis of a separate Unicode conversion table in memory. This conversion can be manipulated if user mapping is activated and mapping definitions (`*`) are defined through the provided user table.

The options UPPER and LOWER convert characters without expansion, i.e. returned strings will never grow in length. Note, however, that case folding and the special options (convert e.g. ß to SS) can result in an expansion of data.

All these conversions are pre-calculated once at beginning of execution to reduce the required CPU time for the conversion.

#### Selections

- `UPPER - Change character to upper case`
- `LOWER - Change character to lower case`
- `FOLD - Change character to folded case (for compare)`
- `SUPPER - Change character to special upper case`
- `SLOWER - Change character to special lower case`
- `USRTAB - Change character according to user table`