MatchEverything also seems unnecessary. Is there a particular use case where you'd want to match everything? In any case, the subtraction semantics are wrong here; you really want to return a match that matches `not match`.