static ItIt flexMatchIC_iterator(S pat, S input) { L tokPat = javaTokNPunctuation_plusAsterisk(pat), tokInput = javaTokNPunctuation_plusAsterisk(input); ret flexMatchIC_iterator(pat, tokPat, tokInput); } static ItIt flexMatchIC_iterator(Tok pat, Tok input) { ret flexMatchIC_iterator(pat.text(), pat.tok(), input.tok()); } static ItIt flexMatchIC_iterator(S pat, LS tokPat, LS tokInput) { L varIndices = flexMatchIC_getVarIndices(tokPat, tokInput); if (varIndices == null) ret emptyItIt(); ItIt spreadInputs = ai_spreadCertainIndices_2_iterator(tokPat, tokInput, varIndices); ret mapI_notNulls(tok -> getMatches(pat, tok), spreadInputs); }