cpovirk and ronshapiro Internally, use PatternCompiler from Doubles.tryParse.
(Redo of CL 202132002, which was partially rolled back in CL 202139691.)

This time including tests to cover the RE2J approach.
To avoid the errors of last time, I had to remove the possessive quantifiers under RE2J and replace \p{XDigit} with [0-9a-fA-F] (which is equivalent; see the Pattern Javadoc).

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204301262
Latest commit 08adcec Jul 12, 2018