ENH: support leading '(?i)' to compile case-insensitive regex.

- syntax as java Pattern and the PCRE library

- this extension is a convenient means to provide case-insensitive
  regular expressions for the dictionaries without need to invent any
  particularly new syntax
ENH: regExp match directly on std:string

- avoid unnecessary promotion to a Foam::string

- can match groupings to std::string or Foam::string