code: def _match_iter_single(self, path_elements, start_at):
          
  
          length = len(path_elements)
  
          if length == 0:
              return
  
          # If bound to end, we start searching as late as possible
          if self.bound_end:
              start = length - 1
              if start < start_at:
                  return
          else:
              start = start_at
  
          # If bound to start, we stop searching at the first element
          if self.bound_start:
              end = 1
          else:
              end = length
              if start > end:
                  # It's impossible to match
                  # the search has a fixed start and end, and path_elements
                  # does not have enough elements for a match, or
                  return
  
          for index in range(start, end):
              element = path_elements[index]
              if self.elements[0].match(element):
                  yield index + 1
docs: Implementation of match_iter optimized for self.elements of length 1