The macro preprocessor supports the following options:
.-UPPER-. >>-CASE--(--+-ASIS--+--)---------------------------------------><
.-DECIMAL-. >>-FIXED--(--+-BINARY--+--)------------------------------------><
>>-NAMEPREFIX--(character)-------------------------------------><
The character should be specified "as is" and should not be enclosed in quotes.
.-ASIS--. >>-RESCAN--(--+-UPPER-+--)-------------------------------------><
To see the effect of this option, consider the following code fragment
%dcl eins char ext;
%dcl text char ext;
%eins = 'zwei';
%text = 'EINS';
display( text );
%text = 'eins';
display( text );
When compiled with PP(MACRO('RESCAN(ASIS)')), in the second display statement, the value of text is replaced by eins, but no further replacement occurs since under RESCAN(ASIS), eins does not match the macro variable eins since the former is left asis while the latter is uppercased. Hence the following text would be generated
DISPLAY( zwei ); DISPLAY( eins );
But when compiled with PP(MACRO('RESCAN(UPPER)')), in the second display statement, the value of text is replaced by eins, but further replacement does occur since under RESCAN(UPPER), eins does match the macro variable eins since both are uppercased. Hence the following text would be generated
DISPLAY( zwei );
DISPLAY( zwei );
In short: RESCAN(UPPER) ignores case while RESCAN(ASIS) does not.
You can set the default options for the macro preprocessor by using the set IBM.PPMACRO command.