RegexEngine Entire Pattern Reference

RegexEngine objects now contain a member -- Pattern -- which always refers to the outermost pattern.  When a RegexEngine is initialized without using an existing RegexEngine this member is set to refer to the pattern that RegexEngine matches.  When a RegexEngine is initialized using an existing RegexEngine and a new pattern (as when matching a subpattern) this member continues to refer to the outermost pattern.  In this way pattern elements always have access to the entire, outermost pattern.
Recurse Entire Pattern

Added support for the (?R) construct, which recurses the entire pattern.

The implementation and parsing for this construct are different enough that I felt they didn't belong in the same file, so group/subpattern recursion has been moved to regexrecursegroup.cpp, whereas recursion of the entire pattern is in regexrecurse.cpp.
RegexCapture Iterator Order

The RegexCapture constructor will now swap iterators passed in reverse order (i.e. end, begin rather than begin, end), simplifying the implementation of capturing constructs in the presence of right-to-left mode.

RegexCapturingGroup's implementation has been updated/simplified to reflect this.
Repetition Zero-Width Match Infinite Loop

Fixed infinite loops caused by repeating possibly or definitely zero-width matches.

Added unit tests for these situations.
RegexMatch and RegexCapture const Overloads

Added const overloads for methods/operator overloads on the RegexMatch and RegexCapture classes.