docs: def build_groups(self, tokens):
          """Build dict of groups from list of tokens"""
          groups = {}
          for token in tokens:
              match_type = MatchType.start if token.group_end else MatchType.single
              groups[token.group_start] = (token, match_type)
              if token.group_end:
                  groups[token.group_end] = (token, MatchType.end)
          return groups