changed 8-bit-character checks; test process seems to nuke the $1, $2, etc. variables, so I can't check them back in the tests itself. Now done via an array of matched-out characters.
Systematized test counting to make sure counts were right
Tests now "use strict;"
Regex flags handled properly
_regex_render added to centralize regex fixups
Removed duplicate bottm-out test in substitution recursion