docs: def at_span(self, span, predicate=None, index=None):
          """
          Retrieves a list of matches from given (start, end) tuple.
          """
          starting = self._index_dict[span[0]]
          ending = self._index_dict[span[1] - 1]
  
          merged = list(starting)
          for marker in ending:
              if marker not in merged:
                  merged.append(marker)
  
          return filter_index(merged, predicate, index)