code: def get_grouped_pairs(self, format_string):
          
          # Step 1: Split simple tokens (without a name) into
          # their whitespace parts and non-whitespace parts.
          separated = []
          pattern = re.compile(r'(\s+)')
          for token in self.get_pairs(format_string):
              if token.name:
                  separated.append(token)
              else:
                  separated.extend(
                      FormatStringToken(name=None, text=text)
                      for text in pattern.split(token.text) if text
                  )
          # Step 2: Group tokens together based on whitespace.
          current_group = []
          grouped_pairs = []
          for token in separated:
              if token.text.isspace():
                  if current_group:
                      grouped_pairs.append(current_group)
                  grouped_pairs.append([token])
                  current_group = []
              else:
                  current_group.append(token)
          if current_group:
              grouped_pairs.append(current_group)
          return grouped_pairs
docs: Group the results of :func:`get_pairs()` separated by whitespace.
  
          :param format_string: The logging format string.
          :returns: A list of lists of :class:`FormatStringToken` objects.