M uses names for variables, LOCK command arguments, labels on lines, and routine names. M names are alphanumeric and must start with an alphabetic character or a percent sign (%).
The percent sign can only appear as the first character in a name. By convention, names starting with percent signs are generally application-independent or distinguished in some similar way.
M does not reserve any names. That is, M always distinguishes keywords by context. Therefore, M permits a variable or a label called SET even though the language has a command called SET.
M names are case sensitive. That is, M treats ABC, Abc, ABc, AbC ABC, and abc as six different names.
M does not restrict the length of names in the main body of the standard. However, the portability section of the standard recommends limiting names to a maximum of eight (8) characters. GT.M's limit of 31 characters applies to:
Local variables names
Global variables names
Routine names
Source and object file names (not including the extension)
Label names
Local lock resource names
Global lock resource names
A trigger name is up to 28 characters and a replication instance name is up to 15 characters.