parseSep = function(s, pats) result = [] startPos = 0 pos = 0 while pos < s.len for pat in pats if s[pos : pos+pat.len] != pat then continue result.push s[startPos : pos] result.push "{" + pat + "}" startPos = pos + pat.len pos = startPos - 1 break end for pos = pos + 1 end while return result end function print parseSep("a!===b=!=c", ["==", "!=", "="])