
Yeah! I am glad the mailing list has helped. If you get stuck or need something fancier then let me know (I wrote RegexLike).
But I still don't know how to get makeRegex to work. You need it to specify options like case insensitivity, or to use functions like matchAllText.
Well, the options are defined in detail by the back end module, e.g. regex-posix. Take Text.Regex.Posix.Wrap: Most importantly is the "Regex" data type defined in this module. Also, there is an instance of "RegexMaker Regex CompOption ExecOption String". The CompOptions and ExecOptions are defined in this module, and can be passed to "makeRegexOpts" from the RegexMaker class that converts String/ByteString/.. to the Regex data type. The CompOptions are only settable at this compilation stage. Later you can use "getExecOpts" and "setExecOpts" to create a new Regex from the original Regex which differs in the value of ExecOptions it uses. These execution options can change after creating the Regex. The "makeRegex" uses the "defaultCompOpt" and "defaultExecOpt" values. The CompOptions for Text.Regex.Posix.Wrap are at http://www.haskell.org/ghc/docs/latest/html/libraries/regex-posix/Text-Regex... and are just a newtype of the underlying c-library's bitmapped int flags. AND I made this newtype derive the same "Bits" instance, so this works:
let r = makeRegexOpts (defaultCompOpts || compIgnoreCase) defaultExecOpts "caseInSensiTIVe"
By binding a Regex value like this and using it several times one saves the effort of compiling the String pattern into the Regex data type. If you need something that is not exactly given by the RegexLike API then there may be a RegexContext instance which does give you what you want. WARNING: The version of regex-base you are using matters most when it comes to the RegexContext instances. The latest 0.93.1 version is at http://hackage.haskell.org/packages/archive/regex-base/0.93.1/doc/html/Text-... and please note the "Source" link in the top right corner area which helps in understanding that RegexContext is just a convenience wrapper. ghc 6.10 is distributed with the 0.72.0.2 version which is at http://hackage.haskell.org/packages/archive/regex-base/0.72.0.2/doc/html/Tex... and again has a link the "Source". Hooray for hackage. -- Chris