This logic isn't right.  Negative matching needs to involve `does_not_match?` if it is defined because some matchers need different logic for the negative case:

https://github.com/rspec/rspec-expectations/blob/cb13bd12ea335c8bdbf26aada60ef7bbf678a2e8/lib/rspec/expectations/handler.rb#L74-L79

Please add a spec for this as well.