code: def split(self, delimiter=None):
          
          result = []
          strings = self.strings[:]
          current = None
  
          while strings:
              is_literal, value = strings[0]
              parts = value.split(delimiter, 1)
              if len(parts) > 1:
                  value1, value2 = parts
                  strings[0] = (is_literal, value2)
                  out = EscapedString(value1, is_literal)
                  push = True
              else:
                  strings = strings[1:]
                  out = EscapedString(value, is_literal)
                  push = False
  
              if current is None:
                  current = out
              else:
                  current = current + out
              if push:
                  result.append(current)
                  current = None
  
          if current:
              result.append(current)
          return result
docs: Same as string.split(), but retains literal/expandable structure.
  
          Returns:
              List of `EscapedString`.