Parsing still broken. Include new tests to show issues.

 * \^rege^rege^ should be valid since \^ should be taken as literal ^
 * Length validation happens at the wrong time.

The solution will be to do 2 passes at parsing, first to treat the
string as a <character-string> and second to parse the regexp as data.