Correctly change regexp delimiters and ensure closing delimiter on String().

The previous version wasn't escaping the new delimiter within the regexp.
Also, String() didn't ensure a trailing delimiter,
which breaks the printing of some compound addresses.
Now: regexps are delimited by either / or ? and they have no trailing delimiter.
The trailing delimiter is always added by String().