code: def _match(self, p, value):
          
          if self._is_operator(p):
              return self._match_operator(p, value)
          else:
              try:
                  if self._is_value_filter(p):
                      return self._match_value_filter(p, value)
                  else:
                      return self._match_key_filter(p, value)
              except KeyError:
                  if self._suppress_key_errors or self._suppress_exceptions:
                      return False
                  else:
                      raise
              except TypeError:
                  if self._suppress_exceptions:
                      return False
                  else:
                      raise
docs: Calls either _match_operator or _match_operand depending on the pattern (p) provided.