Added support for start/end of string, and "hex"

Also changed the way start/end of line are implemented slightly, as I think they were wrong/bug-prone. (See the related issue I raised.)
This makes this version *slightly* incompatible with the previous, but  the change (which only affects weird uses of `start/end_of_line`, and some uses for `alternatively`) is unlikely to even be noticed.

P.s. I didn't want to re-generate the gemspec myself as I'm submitting this on a Windows machine which has all different versions of things installed.