sbool match3_withInts(S pat, S s, Matches m default null) { LS tokPat = javaTokWithAllPlusAngleBrackets(pat); S pat2 = join(replace(cloneList(tokPat), "", "*")); Matches m2 = m == null ? new Matches : m; ifdef match3_withInts_debug printVars_str match3_withInts(+pat2, +s); endifdef if (!match3(pat2, s, m2)) false; LS vars = filter(codeTokens(tokPat), t -> eqOneOf(t, "", "*")); ifdef match3_withInts_debug printVars_str match3_withInts(+m2, +vars); endifdef for i over vars: { if (eq(vars.get(i), "") && !isInteger(m2.get(i))) false; } true; }