static L matchAll(S pat, Iterable l) { new L l2; new Matches m; if (l != null) for (S s : l) if (match(pat, s, m)) { l2.add(m); m = new Matches; } ret l2; }