code: def match(self, subject: Expression) -> Iterator[Tuple[Expression, Substitution]]:
          
          return _MatchIter(self, subject)
docs: Match the subject against all the matcher's patterns.
  
          Args:
              subject: The subject to match.
  
          Yields:
              For every match, a tuple of the matching pattern and the match substitution.