code: def shell_split(text):
      
      assert is_text_string(text)  # in case a QString is passed...
      pattern = r'(\s+|(?<!\\)".*?(?<!\\)"|(?<!\\)\'.*?(?<!\\)\')'
      out = []
      for token in re.split(pattern, text):
          if token.strip():
              out.append(token.strip('"').strip("'"))
      return out
docs: Split the string `text` using shell-like syntax
  
      This avoids breaking single/double-quoted strings (e.g. containing
      strings with spaces). This function is almost equivalent to the shlex.split
      function (see standard library `shlex`) except that it is supporting
      unicode strings (shlex does not support unicode until Python 2.7.3).