Add string prefix and suffix matchers

Regular expression matchers would suffice, but regular expressions are always
potential sources of problems.

The implementation could have reused the regular expression matcher, but by
implementing each matcher in its own right, the code structure is simpler and
diagnostic messages are worded in terms of prefixes and suffices. Ease of use
is more important than the cost of a little extra code.

Documentation branch to be updated in a separate commit.