code: def split_on(s, sep=" "):
      
      pattern = '''((?:[^%s"']|"[^"]*"|'[^']*')+)''' % sep
  
      return [_strip_speechmarks(t) for t in re.split(pattern, s)[1::2]]
docs: Split s by sep, unless it's inside a quote.