Support highlighting regexes

You can specify java or lucene flavored regexes, case insensitive, all that
stuff.  Matches are greedy.

Change-Id: I9b9dd4ff265b6ad045eecac0c1fbcd54ba5de3cb