extension String { func multiSplit(on seps: [String]) -> ([Substring], [(String, (start: String.Index, end: String.Index))]) { var matches = [Substring]() var matched = [(String, (String.Index, String.Index))]() var i = startIndex var lastMatch = startIndex main: while i != endIndex { for sep in seps where self[i...].hasPrefix(sep) { if i > lastMatch { matches.append(self[lastMatch.. lastMatch { matches.append(self[lastMatch..