This replaces my previous patch to cl-ppcre.lisp.
In addition to the previous functionality changes/bug fixes, it converts 'unify to use #'cl-ppcre:scan-to-strings, which simplifies the logic somewhat. It also fixes a bug involving unbound register groups. That is:
(match (#T(regexp "(foo)(bar)?baz" (?x ?y)) "foobaz") (values x y))
will now return
"foo", nil
rather than signaling a type-error.