sS regexpReplace_directWithRefs(S s, S pat, S replacement) { Matcher m = safeRegexp(pat, s); new StringBuffer buf; while (m.find()) m.appendReplacement(buf, replaceDollarVars2_dyn(replacement, v -> !isInteger(v) ? null : matcherGroup(m, parseInt(v)))); m.appendTail(buf); ret str(buf); }