WIP - Replace position regexp matching with named captures

This branch replaces position based regexps with named captures.

Coverage drops slightly in this because the amount of code is reduce, and the code happens to be covered.