Attempt to use negative matchers

I'm not sure how to write this perfectly but thanks to @jgarber's tips I was able to make several of the rules more robust