{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-| 
The "Text.Regex.DFA" module provides a backend for regular
expressions. To use it should be imported along with
"Text.Regex.Lazy".  If you import this along with other backends, then
you should do so with qualified imports, perhaps renamed for
convenience.

The DFA engine now takes two CompOption flags: multiline and
caseSensitive.  These both default to True.  The multiline option
means that a dot matches everything except a newline and ^ and $ match
the after and before a newlilne.  If multiline is false then a dot
matches everything and ^ and $ match only the start and end of the
input.  The ExecOption is a newtype'd ().

The DFA is a limited backend that trades off features for speed.  It
returns the longest full match, but does not return substring captures
or allow back-references to be used.  It has been expanded and can now
handle the ^ and $ anchors.  Internally it searches ['Char'] or
'ByteString', and is very suitable to quickly search either type.

The DFA backend is a derived work and under the LGPL, the details are
in "Text.Regex.DFA.Engine".
-}

module Text.Regex.DFA(getVersion_Text_Regex_DFA
  -- ** "Text.Regex.Lib.Wrap", providing 'Regex','CompOption','ExecOption','=~','=~~'
  ,module Text.Regex.DFA.Wrap
  -- ** "Text.Regex.DFA.String", instances only
  ,module Text.Regex.DFA.String
  -- ** "Text.Regex.DFA.Sequence", instance only
  ,module Text.Regex.DFA.Sequence
  -- ** "Text.Regex.DFA.ByteString", instance only
  ,module Text.Regex.DFA.ByteString
  -- ** "Text.Regex.DFA.Lazy.ByteString", instance only
  ,module Text.Regex.DFA.ByteString.Lazy
  -- ** "Text.RegexBase" re-exported
  ,module Text.Regex.Base) where

import Text.Regex.DFA.Wrap(Regex,CompOption(..),ExecOption(..),(=~),(=~~))
import Text.Regex.DFA.String()
import Text.Regex.DFA.Sequence()
import Text.Regex.DFA.ByteString()
import Text.Regex.DFA.ByteString.Lazy()
import Text.Regex.Base
import Data.Version(Version(..))

getVersion_Text_Regex_DFA :: Version
getVersion_Text_Regex_DFA =
  Version { versionBranch = [0,91]
          , versionTags = ["unstable"]
          }