static LS nl_convertMatchExpressionToPatternList(S s) { new LinkedHashSet patterns; for (S s2 : tok_splitAtOrOperator(s)) { Pair p = tok_parseFunctionCall(s2); if (p == null || !isQuoted(first(p.b))) null; S pat = unquote(first(p.b)); if (eqOneOf(p.a, 'match_vbar, 'match)) patterns.addAll(tok_splitAtVerticalBar(pat)); else if (eqOneOf(p.a, 'matchStart_vbar, 'matchStart)) patterns.addAll(appendToAll(" ...", tok_splitAtVerticalBar(pat))); else if (eqOneOf(p.a, 'matchEnd_vbar, 'matchEnd)) patterns.addAll(prependToAll("... ", tok_splitAtVerticalBar(pat))); else fail(p.a); } ret asList(patterns); }