The `ProhibitedStringSuccess` and `ProhibitedStringFailure` classes are  identical except `PASS` and `FAIL`. Perhaps they can be the same class, with `PASS` or `FAIL` passed to them at initialisation?