Add private constructors to CPScanner and TextHelper
Replace TextHelper.escapeRE() with a more efficient .toPattern() method

We don't do any star replacement, we just cycle through the string, quote
metacharacters and handle stars as we go through. Test it.