static L replaceIC(L l, S a, S b) { new L l2; for i over l: { S s = l.get(i); l2.add(eqic(s, a) ? b : s); } ret l2; } static S replaceIC(S s, S a, S b) { ret s.replaceAll("(?i)" + patternQuote(a), quoteReplacement(b)); }