RESCAN

This option specifies how the preprocessor should handle the case of identifiers when rescanning text.

Read syntax diagramSkip visual syntax diagramRESCAN( ASISUPPER )
UPPER
Rescans will not be case-sensitive.
ASIS
Rescans will be case-sensitive.
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 you compile with PP(MACRO('RESCAN(ASIS)')), in the second display statement, the value of text is replaced by eins, but no further replacement occurs. This is because under RESCAN(ASIS), eins does not match the macro variable eins; the former is left as is while the latter is in uppercase. Hence the following text is generated:
   DISPLAY( zwei );

   DISPLAY( eins );
But when you compile with PP(MACRO('RESCAN(UPPER)')), in the second display statement, the value of text is replaced by eins , but further replacement does occur because under RESCAN(UPPER), eins does match the macro variable eins (both are in uppercase). Hence the following text is generated:
   DISPLAY( zwei );

   DISPLAY( zwei );

In summary, RESCAN(UPPER) ignores case while RESCAN(ASIS) does not.