Simon's patch, adding the PatternCaptureGroupFilterFactory,
and a couple of changes to the PatternReplaceFilter
Changed PatternCaptureGroupTokenFilter to not change the offsets