static SS matchDollarVarsIC_plusBrackets(S pat, S s) { if (pat == null || s == null) null; new L vars; S pat2 = dollarVarsToStars(pat, vars); new Matches m; if (!match3_plusBrackets(pat2, s, m)) null; new SS map; for (int i = 0; i < l(m.m); i++) { S var = vars.get(i); S value = m.get(i); if (startsWith(var, "$_q_")) { if (!isQuoted(value)) null; var = "$" + substring(var, 4); value = unquote(value); } if (!strictPutIC(map, var, value)) null; } ret map; }