I'm not seeing what kind of maintenance would be involved here - and you have various string tricks to use to make the expression itself more comprehensible (at the possible cost of performance).
control_codes_1 := CHR(1) || '-' || CHR(36)
control_codes_2 := CHR(38) || '-' || CHR(47)
regexp_replace(
p_string,
format('[%s%s%s%s%s%s]',
control_codes_1,
control_codes_2,
blah1,
blah2,
blah3,
blah4
),
'x')
Add a code comment and the next person to read this should be able to understand its purpose.
Note, as a matter of course I try to avoid E'' strings whenever I write regular expressions - since backslash is special to both I have to escape the ones being passed to the regex engine and that is undesirable.