list the positions where you want array syntax to be enabled - I can't easily enable it globally.
I'd say, generally, wherever a string is expected and variable substitution is performed, and where the $ symbol doesn't have a role yet, but I'm not sure that all places I'll list would not create problems; I could also mention places where it does work.
I'd say: WRITE_EVALUATED_ASCII and similar commands
(OUTER_)INNER_PATCH(_SAVE) (both for string and savevar)
ACTION_BASH_FOR; MAKE_BIFF; for the latter, it would work maybe even better (as it would allow to use a string containing an array instead of just an array) to allow any number of EVALUATE_BUFFER to be put before the file regexp, eg
MAKE_BIFF ~biff~ BEGIN ~folder~ EVALUATE_BUFFER ~string%array_%arg%%~ END
COPY, MOVE, APPEND(_COL), EXTEND_TOP/BOTTOM, QUOTE, SPACES, PRINT, LOG, WARN, SAY, REPLACE(_TEXTUALLY), SET_2DA_ENTRY
EVALUATE_BUFFER
Actually, would it be possible, instead of just accepting an array instead of a string on each commands, that every time a string is evaluated (because the command automatically does it or because of E_B), after changing everything between %s, the installer also checks if any string preceded by $ and followed by brackets has been inited as an array? For instance, to interpret ~abc$def(g)~ as ~abc[value of argument g of array def]~?