packages feed

pcre-light 0.1 → 0.2

raw patch · 17 files changed

+4538/−28779 lines, 17 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

- Text.Regex.PCRE.Light.Base: instance Data Regex
- Text.Regex.PCRE.Light.Base: instance Typeable Regex
- Text.Regex.PCRE.Light.Base: newtype Regex
+ Text.Regex.PCRE.Light: compileM :: (Monad m) => ByteString -> [PCREOption] -> m Regex
+ Text.Regex.PCRE.Light.Base: data Regex
+ Text.Regex.PCRE.Light.Char8: compileM :: (Monad m) => String -> [PCREOption] -> m Regex
- Text.Regex.PCRE.Light: compile :: ByteString -> [PCREOption] -> Either String Regex
+ Text.Regex.PCRE.Light: compile :: ByteString -> [PCREOption] -> Regex
- Text.Regex.PCRE.Light.Base: Regex :: (ForeignPtr PCRE) -> Regex
+ Text.Regex.PCRE.Light.Base: Regex :: !ForeignPtr PCRE -> !ByteString -> Regex
- Text.Regex.PCRE.Light.Char8: compile :: String -> [PCREOption] -> Either String Regex
+ Text.Regex.PCRE.Light.Char8: compile :: String -> [PCREOption] -> Regex

Files

Text/Regex/PCRE/Light.hs view
@@ -1,14 +1,13 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE CPP #-} -------------------------------------------------------------------- -- |--- Module    : Text.Regex.PCRE.Light--- Copyright:  Copyright (c) 2006, Christopher Kuklewicz---             Copyright (c) 2007, Don Stewart--- License   : BSD3+-- Module   : Text.Regex.PCRE.Light+-- Copyright: Copyright (c) 2007-2008, Don Stewart+-- License  : BSD3 -- -- Maintainer:  Don Stewart <dons@galois.com> -- Stability :  experimental--- Portability: H98 + FFI+-- Portability: H98 + CPP -- -------------------------------------------------------------------- -- @@ -22,7 +21,7 @@           Regex          -- * ByteString interface-        , compile+        , compile, compileM         , match          -- * Regex types and constructors externally visible@@ -72,9 +71,14 @@ import Text.Regex.PCRE.Light.Base  -- Strings+import qualified Data.ByteString          as S++#if __GLASGOW_HASKELL__ >= 608 import qualified Data.ByteString.Internal as S import qualified Data.ByteString.Unsafe   as S-import qualified Data.ByteString          as S+#else+import qualified Data.ByteString.Base     as S+#endif  import Control.Monad @@ -84,24 +88,24 @@ import Foreign.C.Types import Foreign.C.String import Foreign.Storable+import Foreign.Marshal.Alloc  -- | 'compile' ----- Compile a perl-compatible regular expression, in a strict bytestring.+-- Compile a perl-compatible regular expression stored in a strict bytestring. -- -- An example ----- > let Right r = compile (pack "^(b+|a){1,2}?bc") []+-- > let r = compile (pack "^(b+|a){1,2}?bc") [] -- -- Or using GHC's -XOverloadedStrings flag, and importing -- Data.ByteString.Char8, we can avoid the pack: ----- > let Right r = compile "^(b+|a){1,2}?bc" []------ If the regular expression is invalid, Left is returned,+-- > let r = compile "^(b+|a){1,2}?bc" [] ----- > > compile "*" []--- > Left "nothing to repeat"+-- If the regular expression is invalid, an exception is thrown.+-- If this is unsuitable, 'compileM' is availlable, which returns failure +-- in a monad. -- -- To do case insentive matching, --@@ -162,32 +166,50 @@ -- -- * 'no_utf8_check'   - Do not check the pattern for UTF-8 validity ----- If compilation of the pattern fails, the 'Left' constructor is --- returned with the error string. Otherwise an abstract type--- representing the compiled regular expression is returned. -- The regex is allocated via malloc on the C side, and will be -- deallocated by the runtime when the Haskell value representing it -- goes out of scope. ----- See man pcreapi for more details.+-- See 'man pcreapi for more details. -- -- Caveats: patterns with embedded nulls, such as "\0*" seem to be -- mishandled, as this won't currently match the subject "\0\0\0". ----- Possible improvements: an 'IsString' instance could be defined--- for 'Regex', which would allow the compiler to insert calls to--- 'compile' based on the type:+compile :: S.ByteString -> [PCREOption] -> Regex+compile s o = case compileM s o of+    Just  r -> r+    Nothing -> error ("Text.Regex.PCRE.Light: Error in regex: " ++ show s)++------------------------------------------------------------------------++-- | 'compileM'+-- A generic version of 'compile' with failure lifted into an arbitrary monad. ----- The following would be valid:+-- Examples, illustrating how failure can be propagated to an IO exception, +-- or tagged as 'Nothing': ----- > match "a.*b" "abcdef" []+-- > > compileM ".*" [] :: Maybe Regex+-- > Just (Regex 0x000000004bb5b540 ".*") ----- and equivalent to:+-- > > compileM "*" [] :: Maybe Regex+-- > Nothing ----- > match (either error id (compile "a.*b")) "abcdef" []+-- > > compileM "*" [] :: IO Regex+-- > *** Exception: user error (nothing to repeat) ---compile :: S.ByteString -> [PCREOption] -> Either String Regex-compile str os = unsafePerformIO $+-- > > compileM ".*" [] :: IO Regex+-- > Regex 0x000000004bb5b780 ".*"+--+-- > > :m + Control.Monad.Error+--+-- > > compileM ".*" [] :: Either String Regex+-- > Right (Regex 0x000000004bb5b980 ".*")+--+-- > > compileM "*" [] :: Either String Regex+-- > Left "nothing to repeat"+--+compileM :: Monad m => S.ByteString -> [PCREOption] -> m Regex+compileM str os = unsafePerformIO $   S.useAsCString str $ \pattern -> do     alloca $ \errptr       -> do     alloca $ \erroffset    -> do@@ -195,11 +217,23 @@         if pcre_ptr == nullPtr             then do                 err <- peekCString =<< peek errptr-                return (Left err)+                return (fail err)             else do-                reg <- newForeignPtr c_free pcre_ptr -- release with free()-                return (Right (Regex reg))+                reg <- newForeignPtr finalizerFree pcre_ptr -- release with free()+                return (return (Regex reg str)) +-- Possible improvements: an 'IsString' instance could be defined+-- for 'Regex', which would allow the compiler to insert calls to+-- 'compile' based on the type:+--+-- The following would be valid:+--+-- > match "a.*b" "abcdef" []+--+-- and equivalent to:+--+-- > match (either error id (compile "a.*b")) "abcdef" []+ -- | 'match' -- -- Matches a compiled regular expression against a given subject string,@@ -245,7 +279,7 @@ -- is returned. -- match :: Regex -> S.ByteString -> [PCREExecOption] -> Maybe [S.ByteString]-match (Regex pcre_fp) subject os = unsafePerformIO $ do+match (Regex pcre_fp _) subject os = unsafePerformIO $ do   withForeignPtr pcre_fp $ \pcre_ptr -> do     n_capt <- capturedCount pcre_ptr @@ -310,7 +344,3 @@         alloca $ \n_ptr -> do -- (st :: Ptr CInt)              c_pcre_fullinfo regex_ptr nullPtr info_capturecount n_ptr              return . fromIntegral =<< peek (n_ptr :: Ptr CInt)--foreign import ccall unsafe "&free"-    c_free :: FinalizerPtr a -- FunPtr (Ptr a -> IO ())-
Text/Regex/PCRE/Light/Base.hsc view
@@ -1,16 +1,16 @@-{-# LANGUAGE GeneralizedNewtypeDeriving, DeriveDataTypeable #-}+{-# LANGUAGE CPP, ForeignFunctionInterface, GeneralizedNewtypeDeriving #-} -------------------------------------------------------------------- -- |--- Module    : Text.Regex.PCRE.Light.Base--- Copyright:  Copyright (c) 2006, Christopher Kuklewicz---             Copyright (c) 2007, Don Stewart+-- Module   : Text.Regex.PCRE.Light.Base+-- Copyright: Copyright (c) 2007-2008, Don Stewart -- -- Documentation based on /man pcreapi/, written by Philip Hazel, 2007. -- -- License   : BSD3 -- Maintainer:  Don Stewart <dons@galois.com> -- Stability :  experimental--- Portability: CPP, FFI, newtype deriving, deriving Data, deriving Typeable+-- Portability: CPP, FFI+-- Tested with: GHC 6.8.2 -- -- Raw FFI bindings to PCRE functions and constants.  --@@ -98,9 +98,7 @@ import Foreign.C.Types import Foreign.C.String -#if __GLASGOW_HASKELL__-import Data.Generics-#endif+import qualified Data.ByteString.Char8 as S  #include <pcre.h> @@ -115,13 +113,8 @@ -- The structure allocated by the PCRE library will be deallocated -- automatically by the Haskell storage manager. ---newtype Regex = Regex (ForeignPtr PCRE)--#if __GLASGOW_HASKELL__-        deriving (Eq, Ord, Show, Typeable, Data)-#else+data Regex = Regex !(ForeignPtr PCRE) !S.ByteString         deriving (Eq, Ord, Show)-#endif  type PCRE = () 
Text/Regex/PCRE/Light/Char8.hs view
@@ -1,7 +1,7 @@ -------------------------------------------------------------------- -- | -- Module   : Text.Regex.PCRE.Light.Char8--- Copyright: Copyright (c) 2007, Don Stewart+-- Copyright: Copyright (c) 2007-2008, Don Stewart -- License  : BSD3 -- -- Maintainer:  Don Stewart <dons@galois.com>@@ -20,7 +20,7 @@           Regex          -- * String interface-        , compile+        , compile, compileM         , match          -- * Regex types and constructors externally visible@@ -69,7 +69,7 @@  import qualified Data.ByteString.Char8 as S import qualified Text.Regex.PCRE.Light as S-import Text.Regex.PCRE.Light hiding (match, compile)+import Text.Regex.PCRE.Light hiding (match, compile, compileM)  -- | 'compile' --@@ -138,9 +138,15 @@ -- -- See man pcreapi for more details. ---compile :: String -> [PCREOption] -> Either String Regex+compile :: String -> [PCREOption] -> Regex compile str os = S.compile (S.pack str) os {-# INLINE compile #-}++-- | 'compileM'+-- A generic version of 'compile' with failure lifted into an arbitrary monad.+compileM :: Monad m => String -> [PCREOption] -> m Regex+compileM str os = S.compileM (S.pack str) os+{-# INLINE compileM #-}   -- | 'match'
pcre-light.cabal view
@@ -1,9 +1,9 @@ name:            pcre-light-version:         0.1+version:         0.2 homepage:        http://code.haskell.org/~dons/code/pcre-light-synopsis:        A lightweight binding to PCRE+synopsis:        A small, efficient and portable regex library for Perl 5 compatible regular expressions description:-    A lightweight binding to PCRE+    A small, efficient and portable regex library for Perl 5 compatible regular expressions     .     The PCRE library is a set of functions that implement regular     expression pattern matching using the same syntax and semantics as Perl 5.@@ -19,8 +19,9 @@ maintainer:      Don Stewart <dons@galois.com> cabal-version: >= 1.2.0 build-type:      Configure+tested-with:     GHC ==6.8.2, GHC ==6.6.1, Hugs ==2005 -flag new-base+flag small_base   description: Build with new smaller base library   default:     False @@ -32,5 +33,9 @@     extensions:      CPP, ForeignFunctionInterface     ghc-options:     -Wall -O2 -fvia-C -    build-depends: base >= 3, bytestring >= 0.9+    if flag(small_base)+        build-depends: base >= 3, bytestring >= 0.9+    else+        build-depends: base < 3+     extra-libraries: pcre
+ tests/Makefile view
@@ -0,0 +1,11 @@+all:+	ghc -Onot -fasm Unit.hs --make && ./Unit+#	runhaskell Unit.hs && echo $$?++test::+	ghc -fhpc --make -i.. Unit.hs -o Unit -O2 -no-recomp+	rm -f *.tix+	./Unit +	hpc report --decl-list       --exclude=Main Unit+	hpc markup --fun-entry-count --exclude=Main Unit+
tests/Unit.hs view
@@ -13,1324 +13,4432 @@ import Data.Either import qualified Data.Map as M -testRegex :: S.ByteString-     -> [PCREOption]-     -> [S.ByteString]-     -> [Maybe [S.ByteString]]-     -> Test--testRegex regex options inputs outputs = TestLabel (S.unpack regex) $-  TestCase $ do-     assertEqual "Input/Output Length Check" (length inputs) (length outputs)--     assertBool "ByteString regex" =<<-      case compile regex options of-        Left  s -> do hPutStrLn stderr ("ERROR in ByteString: "++ show s)-                      return False-        Right r -> return $-            and [ match r i [] == o-                | (i,o) <- zip inputs outputs ]--     assertBool "String regex" =<<-      case String.compile (S.unpack regex) options of-        Left  s -> do hPutStrLn stderr ("ERROR in String: "++ show s)-                      return False-        Right r -> return $-            and [ String.match r i [] == o-                | (i,o) <- zip (map (S.unpack) inputs)-                               (map (fmap (map S.unpack)) outputs) ]--main = do counts <- runTestTT tests-          when (errors counts > 0 || failures counts > 0) exitFailure--tests = TestList--    [ testRegex "the quick brown fox" []-           [ "the quick brown fox"-           , "The quick brown FOX"-           , "What do you know about the quick brown fox?"-           , "What do you know about THE QUICK BROWN FOX?"-           ]-           [ Just ["the quick brown fox"]-           , Nothing-           , Just ["the quick brown fox"]-           , Nothing-           ]----  , testRegex "\0*" [] -- the embedded null in the pattern seems to be a problem---      ["\0\0\0\0"]---      [Just ["\0\0\0\0"]]--    , testRegex "\1*" [] -- the embedded null in the pattern seems to be a problem-        ["\1\1\1\1"]-        [Just ["\1\1\1\1"]]--    , testRegex "The quick brown fox" [caseless]-           ["the quick brown fox"-           ,"The quick brown FOX"-           ,"What do you know about the quick brown fox?"-           ,"What do you know about THE QUICK BROWN FOX?"-           ]-           [ Just ["the quick brown fox"]-           , Just ["The quick brown FOX"]-           , Just ["the quick brown fox"]-           , Just ["THE QUICK BROWN FOX"]-           ]--     , testRegex "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" []-           ["abxyzpqrrrabbxyyyypqAzz"-           ,"abxyzpqrrrabbxyyyypqAzz"-           ,"aabxyzpqrrrabbxyyyypqAzz"-           ,"aaabxyzpqrrrabbxyyyypqAzz"-           ,"aaaabxyzpqrrrabbxyyyypqAzz"-           ,"abcxyzpqrrrabbxyyyypqAzz"-           ,"aabcxyzpqrrrabbxyyyypqAzz"-           ,"aaabcxyzpqrrrabbxyyyypAzz"-           ,"aaabcxyzpqrrrabbxyyyypqAzz"-           ,"aaabcxyzpqrrrabbxyyyypqqAzz"-           ,"aaabcxyzpqrrrabbxyyyypqqqAzz"-           ,"aaabcxyzpqrrrabbxyyyypqqqqAzz"-           ,"aaabcxyzpqrrrabbxyyyypqqqqqAzz"-           ,"aaabcxyzpqrrrabbxyyyypqqqqqqAzz"-           ,"aaaabcxyzpqrrrabbxyyyypqAzz"-           ,"abxyzzpqrrrabbxyyyypqAzz"-           ,"aabxyzzzpqrrrabbxyyyypqAzz"-           ,"aaabxyzzzzpqrrrabbxyyyypqAzz"-           ,"aaaabxyzzzzpqrrrabbxyyyypqAzz"-           ,"abcxyzzpqrrrabbxyyyypqAzz"-           ,"aabcxyzzzpqrrrabbxyyyypqAzz"-           ,"aaabcxyzzzzpqrrrabbxyyyypqAzz"-           ,"aaaabcxyzzzzpqrrrabbxyyyypqAzz"-           ,"aaaabcxyzzzzpqrrrabbbxyyyypqAzz"-           ,"aaaabcxyzzzzpqrrrabbbxyyyyypqAzz"-           ,"aaabcxyzpqrrrabbxyyyypABzz"-           ,"aaabcxyzpqrrrabbxyyyypABBzz"-           ,">>>aaabxyzpqrrrabbxyyyypqAzz"-           ,">aaaabxyzpqrrrabbxyyyypqAzz"-           ,">>>>abcxyzpqrrrabbxyyyypqAzz"-           ,"abxyzpqrrabbxyyyypqAzz"-           ,"abxyzpqrrrrabbxyyyypqAzz"-           ,"abxyzpqrrrabxyyyypqAzz"-           ,"aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz"-           ,"aaaabcxyzzzzpqrrrabbbxyyypqAzz"-           ,"aaabcxyzpqrrrabbxyyyypqqqqqqqAzz"-           ]--           [ Just ["abxyzpqrrrabbxyyyypqAzz"]-           , Just ["abxyzpqrrrabbxyyyypqAzz"]-           , Just ["aabxyzpqrrrabbxyyyypqAzz"]-           , Just ["aaabxyzpqrrrabbxyyyypqAzz"]-           , Just ["aaaabxyzpqrrrabbxyyyypqAzz"]-           , Just ["abcxyzpqrrrabbxyyyypqAzz"]-           , Just ["aabcxyzpqrrrabbxyyyypqAzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypAzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypqAzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypqqAzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypqqqAzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypqqqqAzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypqqqqqAzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypqqqqqqAzz"]-           , Just ["aaaabcxyzpqrrrabbxyyyypqAzz"]-           , Just ["abxyzzpqrrrabbxyyyypqAzz"]-           , Just ["aabxyzzzpqrrrabbxyyyypqAzz"]-           , Just ["aaabxyzzzzpqrrrabbxyyyypqAzz"]-           , Just ["aaaabxyzzzzpqrrrabbxyyyypqAzz"]-           , Just ["abcxyzzpqrrrabbxyyyypqAzz"]-           , Just ["aabcxyzzzpqrrrabbxyyyypqAzz"]-           , Just ["aaabcxyzzzzpqrrrabbxyyyypqAzz"]-           , Just ["aaaabcxyzzzzpqrrrabbxyyyypqAzz"]-           , Just ["aaaabcxyzzzzpqrrrabbbxyyyypqAzz"]-           , Just ["aaaabcxyzzzzpqrrrabbbxyyyyypqAzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypABzz"]-           , Just ["aaabcxyzpqrrrabbxyyyypABBzz"]-           , Just ["aaabxyzpqrrrabbxyyyypqAzz"]-           , Just ["aaaabxyzpqrrrabbxyyyypqAzz"]-           , Just ["abcxyzpqrrrabbxyyyypqAzz"]-           , Nothing-           , Nothing-           , Nothing-           , Nothing-           , Nothing-           , Nothing-           ]--    , testRegex "^(abc){1,2}zz" []-        ["abczz"-        ,"abcabczz"-        ,"zz"-        ,"abcabcabczz"-        ,">>abczz"]-        [ Just ["abczz","abc"]-        , Just ["abcabczz", "abc"]-        , Nothing-        , Nothing-        , Nothing ]--    , testRegex "^(b+?|a){1,2}?c" []-        ["bc",-         "bbc",-         "bbbc",-         "bac",-         "bbac",-         "aac",-         "abbbbbbbbbbbc",-         "bbbbbbbbbbbac",-         "aaac",-         "abbbbbbbbbbbac"]--        [Just ["bc", "b"],-         Just ["bbc", "b"],-         Just ["bbbc", "bb"],-         Just ["bac", "a"],-         Just ["bbac", "a"],-         Just ["aac", "a"],-         Just ["abbbbbbbbbbbc", "bbbbbbbbbbb"],-         Just ["bbbbbbbbbbbac", "a"],-         Nothing,-         Nothing]--    , testRegex "^(b+|a){1,2}c" []-        ["bc",-         "bbc",-         "bbbc",-         "bac",-         "bbac",-         "aac",-         "abbbbbbbbbbbc",-         "bbbbbbbbbbbac",-         "aaac",-         "abbbbbbbbbbbac"]-        [Just ["bc", "b"],-         Just ["bbc", "bb"],-         Just ["bbbc", "bbb"],-         Just ["bac", "a"],-         Just ["bbac", "a"],-         Just ["aac", "a"],-         Just ["abbbbbbbbbbbc", "bbbbbbbbbbb"],-         Just ["bbbbbbbbbbbac", "a"],-         Nothing,-         Nothing]--    , testRegex "^(b+|a){1,2}?bc" []-        ["bbc"]-        [Just ["bbc", "b"]]--    , testRegex "^(b*|ba){1,2}?bc" []-        ["babc",-         "bbabc",-         "bababc",-         "bababbc",-         "babababc"]-        [Just ["babc","ba"],-         Just ["bbabc","ba"],-         Just ["bababc","ba"],-         Nothing,-         Nothing]--    , testRegex "^(ba|b*){1,2}?bc" []-        ["babc",-         "bbabc",-         "bababc",-         "bababbc",-         "babababc"]-        [Just ["babc","ba"],-         Just ["bbabc","ba"],-         Just ["bababc","ba"],-         Nothing,-         Nothing]--    , testRegex "^[ab\\]cde]" []-        ["athing",-         "bthing",-         "]thing",-         "cthing",-         "dthing",-         "ething",-         "fthing",-         "[thing",-         "\\\\thing"]-        [Just ["a"],-         Just ["b"],-         Just ["]"],-         Just ["c"],-         Just ["d"],-         Just ["e"],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "^[]cde]" []-        ["]thing",-         "cthing",-         "dthing",-         "ething",-         "athing",-         "fthing"]-        [Just ["]"],-         Just ["c"],-         Just ["d"],-         Just ["e"],-         Nothing,-         Nothing]--    , testRegex "^[^ab\\]cde]" []-        ["fthing",-         "[thing",-         "\\\\thing",-         "athing",-         "bthing",-         "]thing",-         "cthing",-         "dthing",-         "ething"]-        [Just ["f"],-         Just ["["],-         Just ["\\"],-         Nothing,-         Nothing,-         Nothing,-         Nothing,-         Nothing,-         Nothing]--    , testRegex "^\129" []-        ["\129"]-        [Just ["\x81"]]--    , testRegex "^\255" []-        ["\255"]-        [Just ["\xff"]]--    , testRegex "^[0-9]+$" []-        ["0",-         "1",-         "2",-         "3",-         "4",-         "5",-         "6",-         "7",-         "8",-         "9",-         "10",-         "100",-         "abc"]-        [Just ["0"],-         Just ["1"],-         Just ["2"],-         Just ["3"],-         Just ["4"],-         Just ["5"],-         Just ["6"],-         Just ["7"],-         Just ["8"],-         Just ["9"],-         Just ["10"],-         Just ["100"],-         Nothing]--    , testRegex "^.*nter" []-        ["enter",-         "inter",-         "uponter"]-        [Just ["enter"],-         Just ["inter"],-         Just ["uponter"]]--    , testRegex "^xxx[0-9]+$" []-        ["xxx0",-         "xxx1234",-         "xxx"]-        [Just ["xxx0"],-         Just ["xxx1234"],-         Nothing]--    , testRegex "^.+[0-9][0-9][0-9]$" []-        ["x123",-         "xx123",-         "123456",-         "123",-         "x1234"]-        [Just ["x123"],-         Just ["xx123"],-         Just ["123456"],-         Nothing,-         Just ["x1234"]]--    , testRegex "^.+?[0-9][0-9][0-9]$" []-        ["x123",-         "xx123",-         "123456",-         "123",-         "x1234"]-        [Just ["x123"],-         Just ["xx123"],-         Just ["123456"],-         Nothing,-         Just ["x1234"]]--    -- test matching more than 1 subpattern-    , testRegex "^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$" []-        ["abc!pqr=apquxz.ixr.zzz.ac.uk",-         "!pqr=apquxz.ixr.zzz.ac.uk",-         "abc!=apquxz.ixr.zzz.ac.uk",-         "abc!pqr=apquxz:ixr.zzz.ac.uk",-         "abc!pqr=apquxz.ixr.zzz.ac.ukk"]-        [Just ["abc!pqr=apquxz.ixr.zzz.ac.uk", "abc", "pqr"],-         Nothing,-         Nothing,-         Nothing,-         Nothing]--    , testRegex ":" []-        ["Well, we need a colon: somewhere",-         "*** Fail if we don't"]-        [Just [":"],-         Nothing]--    , testRegex "([\\da-f:]+)$" [caseless]-        ["0abc",-         "abc",-         "fed",-         "E",-         "::",-         "5f03:12C0::932e",-         "fed def",-         "Any old stuff",-         "*** Failers",-         "0zzz",-         "gzzz",-         "fed\x20",-         "Any old rubbish"]-        [Just ["0abc", "0abc"],-         Just ["abc", "abc"],-         Just ["fed", "fed"],-         Just ["E", "E"],-         Just ["::", "::"],-         Just ["5f03:12C0::932e", "5f03:12C0::932e"],-         Just ["def", "def"],-         Just ["ff", "ff"],-         Nothing,-         Nothing,-         Nothing,-         Nothing,-         Nothing]--    , testRegex "^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$" []-        [".1.2.3",-         "A.12.123.0",-         ".1.2.3333",-         "1.2.3",-         "1234.2.3"]-        [Just [".1.2.3", "1", "2", "3"],-         Just ["A.12.123.0", "12", "123", "0"],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$" []-        ["1 IN SOA non-sp1 non-sp2(",-         "1    IN    SOA    non-sp1    non-sp2   (",-         "1IN SOA non-sp1 non-sp2("]-        [Just ["1 IN SOA non-sp1 non-sp2(", "1", "non-sp1", "non-sp2"],-         Just ["1    IN    SOA    non-sp1    non-sp2   (", "1", "non-sp1", "non-sp2"],-         Nothing]--    , testRegex "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" []-        ["a.",-         "Z.",-         "2.",-         "ab-c.pq-r.",-         "sxk.zzz.ac.uk.",-         "x-.y-.",-         "*** Failers",-         "-abc.peq."]-        [Just ["a."],-         Just ["Z."],-         Just ["2."],-         Just ["ab-c.pq-r.", ".pq-r"],-         Just ["sxk.zzz.ac.uk.", ".uk"],-         Just ["x-.y-.", ".y-"],-         Nothing,-         Nothing]--    , testRegex "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" []-        ["*.a",-         "*.b0-a",-         "*.c3-b.c",-         "*.c-a.b-c",-         "*** Failers",-         "*.0",-         "*.a-",-         "*.a-b.c-",-         "*.c-a.0-c"]-        [Just ["*.a"],-         Just ["*.b0-a", "0-a"],-         Just ["*.c3-b.c", "3-b", ".c"],-         Just ["*.c-a.b-c", "-a", ".b-c", "-c"],-         Nothing,-         Nothing,-         Nothing,-         Nothing,-         Nothing]--    , testRegex "^(?=ab(de))(abd)(e)" []-        ["abde"]-        [Just ["abde", "de", "abd", "e"]]--    , testRegex "^(?!(ab)de|x)(abd)(f)" []-        ["abdf"]-        [Just ["abdf", "", "abd", "f"]]--    , testRegex "^(?=(ab(cd)))(ab)" []-        ["abcd"]-        [Just ["ab", "abcd", "cd", "ab"]]--    , testRegex "^[\\da-f](\\.[\\da-f])*$" [caseless]-        ["a.b.c.d",-         "A.B.C.D",-         "a.b.c.1.2.3.C"]-        [Just ["a.b.c.d", ".d"],-         Just ["A.B.C.D", ".D"],-         Just ["a.b.c.1.2.3.C", ".C"]]--    , testRegex "^\".*\"\\s*(;.*)?$" []-        ["\"1234\"",-         "\"abcd\" ;",-         "\"\" ; rhubarb",-         "*** Failers",-         "\\\"1234\\\" : things"]-        [Just ["\"1234\""],-         Just ["\"abcd\" ;", ";"],-         Just ["\"\" ; rhubarb", "; rhubarb"],-         Nothing,-         Nothing]--    , testRegex "^$" []-        ["",-         "*** Failers"]-        [Just [""],-         Nothing]--    , testRegex "   ^    a   (?# begins with a)  b\\sc (?# then b c) $ (?# then end)" [extended]-        ["ab c",-         "*** Failers",-         "abc",-         "ab cde"]-        [Just ["ab c"],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "(?x)   ^    a   (?# begins with a)  b\\sc (?# then b c) $ (?# then end)" []-        ["ab c",-         "*** Failers",-         "abc",-         "ab cde"]-        [Just ["ab c"],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "^   a\\ b[c ]d       $" [extended]-        ["a bcd",-         "a b d",-         "*** Failers",-         "abcd",-         "ab d"]-        [Just ["a bcd"],-         Just ["a b d"],-         Nothing,-         Nothing,-         Nothing]--    , TestLabel "compile failure" $-            TestCase $ (assertBool "compile failure" $ Left "nothing to repeat"== compile "*" [])--    , testRegex "^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$" []-        ["abcdefhijklm"]-        [Just ["abcdefhijklm",-               "abc", "bc",-               "c", "def",-               "ef", "f",-               "hij", "ij",-               "j", "klm",-               "lm", "m"]]--    , testRegex "^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$" []-        ["abcdefhijklm"]-        [Just ["abcdefhijklm",-             "bc", "c", "ef", "f", "ij", "j", "lm", "m"]]--    , testRegex "^[.^$|()*+?{,}]+" []-        [".^$(*+)|{?,?}"]-        [Just [".^$(*+)|{?,?}"]]--    , testRegex "^a*\\w" []-        ["z",-         "az",-         "aaaz",-         "a",-         "aa",-         "aaaa",-         "a+",-         "aa+"]-        [Just ["z"],-         Just ["az"],-         Just ["aaaz"],-         Just ["a"],-         Just ["aa"],-         Just ["aaaa"],-         Just ["a"],-         Just ["aa"]]--    , testRegex "^a*?\\w" []-        ["z",-         "az",-         "aaaz",-         "a",-         "aa",-         "aaaa",-         "a+",-         "aa+"]-        [Just ["z"],-         Just ["a"],-         Just ["a"],-         Just ["a"],-         Just ["a"],-         Just ["a"],-         Just ["a"],-         Just ["a"]]--    , testRegex "^a+\\w" []-        ["az",-         "aaaz",-         "aa",-         "aaaa",-         "aa+"]-        [Just ["az"],-         Just ["aaaz"],-         Just ["aa"],-         Just ["aaaa"],-         Just ["aa"]]--    , testRegex "^a+?\\w" []-        ["az",-         "aaaz",-         "aa",-         "aaaa",-         "aa+"]-        [Just ["az"],-         Just ["aa"],-         Just ["aa"],-         Just ["aa"],-         Just ["aa"]]--    , testRegex "^\\d{8}\\w{2,}" []-        ["1234567890",-         "12345678ab",-         "12345678__",-         "*** Failers",-         "1234567"]-        [Just ["1234567890"],-         Just ["12345678ab"],-         Just ["12345678__"],-         Nothing,-         Nothing]--    , testRegex "^[aeiou\\d]{4,5}$" []-        ["uoie",-         "1234",-         "12345",-         "aaaaa",-         "*** Failers",-         "123456"]-        [Just ["uoie"],-         Just ["1234"],-         Just ["12345"],-         Just ["aaaaa"],-         Nothing,-         Nothing]--    , testRegex "^[aeiou\\d]{4,5}?" []-        ["uoie",-         "1234",-         "12345",-         "aaaaa",-         "123456"]-        [Just ["uoie"],-         Just ["1234"],-         Just ["1234"],-         Just ["aaaa"],-         Just ["1234"]]--    , testRegex "\\A(abc|def)=(\\1){2,3}\\Z" []-        ["abc=abcabc",-         "def=defdefdef",-         "*** Failers",-         "abc=defdef"]-        [Just ["abc=abcabc", "abc", "abc"],-         Just ["def=defdefdef", "def", "def"],-         Nothing,-         Nothing]--    , testRegex "^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$" []-        ["abcdefghijkcda2",-         "abcdefghijkkkkcda2"]-        [Just ["abcdefghijkcda2", "a", "b",-         "c", "d", "e", "f", "g", "h", "i", "j", "k", "cd"],--         Just ["abcdefghijkkkkcda2", "a", "b", "c", "d",-             "e", "f", "g", "h", "i", "j", "k", "cd"]]--    , testRegex "(cat(a(ract|tonic)|erpillar)) \\1()2(3)" []-        ["cataract cataract23",-         "catatonic catatonic23",-         "caterpillar caterpillar23"]--        [Just ["cataract cataract23", "cataract", "aract", "ract", "", "3"],--         Just ["catatonic catatonic23", "catatonic", "atonic", "tonic", "", "3"],--         Just ["caterpillar caterpillar23", "caterpillar", "erpillar", "", "", "3"]]--    , testRegex "^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]" []-        ["From abcd  Mon Sep 01 12:33:02 1997"]-        [Just ["From abcd  Mon Sep 01 12:33", "abcd"]]--    , testRegex "^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d" []-        ["From abcd  Mon Sep 01 12:33:02 1997",-         "From abcd  Mon Sep  1 12:33:02 1997",-         "*** Failers",-         "From abcd  Sep 01 12:33:02 1997"]-        [Just ["From abcd  Mon Sep 01 12:33", "Sep "],-         Just ["From abcd  Mon Sep  1 12:33", "Sep  "],-         Nothing,-         Nothing]--    , testRegex "\\w+(?=\t)" []-        ["the quick brown\t fox"]-        [Just ["brown"]]--    , testRegex "foo(?!bar)(.*)" []-        ["foobar is foolish see?"]-        [Just ["foolish see?", "lish see?"]]--    , testRegex "(?:(?!foo)...|^.{0,2})bar(.*)" []-        ["foobar crowbar etc",-         "barrel",-         "2barrel",-         "A barrel"]-        [Just ["rowbar etc", " etc"],-         Just ["barrel",     "rel"],-         Just ["2barrel",    "rel"],-         Just ["A barrel",   "rel"]]--    , testRegex "^(\\D*)(?=\\d)(?!123)" []-        ["abc456",-         "*** Failers",-         "abc123"]-        [Just ["abc", "abc"],-         Nothing,-         Nothing]--    , testRegex "^(a)\\1{2,3}(.)" []-        ["aaab",-         "aaaab",-         "aaaaab",-         "aaaaaab"]-        [Just ["aaab", "a","b"],-         Just ["aaaab","a","b"],-         Just ["aaaaa","a","a"],-         Just ["aaaaa","a","a"]]--    , testRegex "(?!^)abc" []-        ["the abc",-         "*** Failers",-         "abc"]-        [Just ["abc"],-         Nothing,-         Nothing]--    , testRegex "(?=^)abc" []-        ["abc",-         "*** Failers",-         "the abc"]-        [Just ["abc"],-         Nothing,-         Nothing]--    , testRegex "^[ab]{1,3}(ab*|b)" []-        ["aabbbbb"]-        [Just ["aabb", "b"]]--    , testRegex "^[ab]{1,3}?(ab*|b)" []-        ["aabbbbb"]-        [Just ["aabbbbb", "abbbbb"]]--    , testRegex "^[ab]{1,3}?(ab*?|b)" []-        ["aabbbbb"]-        [Just ["aa", "a"]]--    , testRegex "^[ab]{1,3}(ab*?|b)" []-        ["aabbbbb"]-        [Just ["aabb", "b"]]--    , testRegex "^(cow|)\\1(bell)" []-        ["cowcowbell",-         "bell",-         "*** Failers",-         "cowbell"]-        [Just ["cowcowbell", "cow", "bell"],-         Just ["bell", "", "bell"],-         Nothing,-         Nothing]--    , testRegex "^\\s" []-        ["\o40abc",-         "\nabc",-         "\rabc",-         "\tabc",-         "abc"]-        [Just [" "],-         Just ["\x0a"],-         Just ["\x0d"],-         Just ["\x09"],-         Nothing]--    , testRegex "^(a|)\\1*b" []-        ["ab",-         "aaaab",-         "b",-         "acb"]-        [Just ["ab", "a"],-         Just ["aaaab", "a"],-         Just ["b", ""],-         Nothing]--    , testRegex "^(a|)\\1+b" []-        ["aab",-         "aaaab",-         "b",-         "*** Failers",-         "ab"]-        [Just ["aab", "a"],-         Just ["aaaab", "a"],-         Just ["b", ""],-         Nothing,-         Nothing]--    , testRegex "^(a|)\\1?b" []-        ["ab",-         "aab",-         "b",-         "acb"]-        [Just ["ab", "a"],-         Just ["aab", "a"],-         Just ["b", ""],-         Nothing]--    , testRegex "^(a|)\\1{2}b" []-        ["aaab",-         "b",-         "ab",-         "aab",-         "aaaab"]-        [Just ["aaab", "a"],-         Just ["b", ""],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "^(a|)\\1{2,3}b" []-        ["aaab",-         "aaaab",-         "b",-         "ab",-         "aab",-         "aaaaab"]-        [Just ["aaab", "a"],-         Just ["aaaab", "a"],-         Just ["b", ""],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "ab{1,3}bc" []-        ["abbbbc",-         "abbbc",-         "abbc",-         "abc",-         "abbbbbc"]-        [Just ["abbbbc"],-         Just ["abbbc"],-         Just ["abbc"],-         Nothing,-         Nothing]--    , testRegex "([^.]*)\\.([^:]*):[T ]+(.*)" []-        ["track1.title:TBlah blah blah"]-        [Just ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"]]--    , testRegex "([^.]*)\\.([^:]*):[T ]+(.*)" [caseless]-        ["track1.title:TBlah blah blah"]-        [Just ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"]]--    , testRegex "([^.]*)\\.([^:]*):[t ]+(.*)" [caseless]-        ["track1.title:TBlah blah blah"]-        [Just ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"]]--    , testRegex "^[W-c]+$" []-        ["WXY_^abc",-         "wxy"]-        [Just ["WXY_^abc"],-         Nothing]--    , testRegex "^[W-c]+$" [caseless]-        ["WXY_^abc",-         "wxy_^ABC"]-        [Just ["WXY_^abc"],-         Just ["wxy_^ABC"]]--    , testRegex "^[\\x3f-\\x5F]+$" [caseless]-        ["WXY_^abc",-         "wxy_^ABC"]-        [Just ["WXY_^abc"],-         Just ["wxy_^ABC"]]--    , testRegex "^abc$" []-        ["abc",-         "qqq\\nabc",-         "abc\\nzzz",-         "qqq\\nabc\\nzzz"]-        [Just ["abc"],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "(?:b)|(?::+)" []-        ["b::c",-         "c::b"]-        [Just ["b"],-         Just ["::"]]--    , testRegex "[-az]+" []-        ["az-",-         "*** Failers",-         "b"]-        [Just ["az-"],-         Just ["a"],-         Nothing]--    , testRegex "[az-]+" []-        ["za-",-         "*** Failers",-         "b"]-        [Just ["za-"],-         Just ["a"],-         Nothing]--    , testRegex "[a\\-z]+" []-        ["a-z",-         "*** Failers",-         "b"]-        [Just ["a-z"],-         Just ["a"],-         Nothing]--    , testRegex "[a-z]+" []-        ["abcdxyz"]-        [Just ["abcdxyz"]]--    , testRegex "[\\d-]+" []-        ["12-34",-         "aaa"]-        [Just ["12-34"],-         Nothing]-    , testRegex "[\\d-z]+" []-        ["12-34z",-         "aaa"]-        [Just ["12-34z"],-         Nothing]--    , testRegex "\\x20Z" []-        ["the Zoo",-         "*** Failers",-         "Zulu"]-        [Just [" Z"],-         Nothing,-         Nothing]--    , testRegex "(abc)\\1" [caseless]-        ["abcabc",-         "ABCabc",-         "abcABC"]-        [Just ["abcabc", "abc"],-         Just ["ABCabc", "ABC"],-         Just ["abcABC", "abc"]]--    , testRegex "ab{3cd" []-        ["ab{3cd"]-        [Just ["ab{3cd"]]--    , testRegex "ab{3,cd" []-        ["ab{3,cd"]-        [Just ["ab{3,cd"]]--    , testRegex "ab{3,4a}cd" []-        ["ab{3,4a}cd"]-        [Just ["ab{3,4a}cd"]]--    , testRegex "{4,5a}bc" []-        ["{4,5a}bc"]-        [Just ["{4,5a}bc"]]--    , testRegex "abc$" []-        ["abc",-         "abc\n",-         "*** Failers",-         "abc\ndef"]-        [Just ["abc"],-         Just ["abc"],-         Nothing,-         Nothing]--    , testRegex "(abc)\\123" []-        ["abc\x53"]-        [Just ["abcS", "abc"]]--    , testRegex "(abc)\\223" []-        ["abc\x93"]-        [Just ["abc\x93", "abc"]]--    , testRegex "(abc)\\323" []-        ["abc\xd3"]-        [Just ["abc\xd3", "abc"]]--    , testRegex "(abc)\\100" []-        ["abc\x40",-         "abc\o100"]-        [Just ["abc@", "abc"],-         Just ["abc@", "abc"]]--    , testRegex "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123" []-        ["abcdefghijkllS"]-        [Just ["abcdefghijkllS",-             "a",-             "b",-             "c",-             "d",-             "e",-             "f",-             "g",-             "h",-             "i",-             "j",-             "k",-             "l"]]--     , testRegex "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123" []-        ["abcdefghijk\o12S"]-        [Just ["abcdefghijk\x0aS",-             "a",-             "b",-             "c",-             "d",-             "e",-             "f",-             "g",-             "h",-             "i",-             "j",-             "k"]]--    , testRegex "ab\\idef" []-        ["abidef"]-        [Just ["abidef"]]--    , testRegex "a{0}bc" []-        ["bc"]-        [Just ["bc"]]--    , testRegex "(a|(bc)){0,0}?xyz" []-        ["xyz"]-        [Just ["xyz"]]--    , testRegex "(?s)a.b" []-        ["a\nb"]-        [Just ["a\nb"]]--    , testRegex "^([^a])([^\\b])([^c]*)([^d]{3,4})" []-        ["baNOTccccd",-         "baNOTcccd",-         "baNOTccd",-         "bacccd",-         "anything",-         "b\bc   ",-         "baccd"]-        [Just ["baNOTcccc", "b", "a", "NOT", "cccc"],-         Just ["baNOTccc", "b", "a", "NOT", "ccc"],-         Just ["baNOTcc", "b", "a", "NO", "Tcc"],-         Just ["baccc", "b", "a", "", "ccc"],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "^\\d{8,}\\@.+[^k]$" []-        ["12345678@a.b.c.d",-         "123456789@x.y.z",-         "*** Failers",-         "12345678@x.y.uk",-         "1234567@a.b.c.d       "]-        [Just ["12345678@a.b.c.d"],-         Just ["123456789@x.y.z"],-         Nothing,-         Nothing,-         Nothing]--    , testRegex "(a)\\1{8,}" []-        ["aaaaaaaaa",-         "aaaaaaaaaa",-         "*** Failers",-         "aaaaaaa   "]-        [Just ["aaaaaaaaa", "a"],-         Just ["aaaaaaaaaa", "a"],-         Nothing,-         Nothing]--    , testRegex "[^a]" []-        ["aaaabcd",-         "aaAabcd "]-        [Just ["b"],-         Just ["A"]]--    , testRegex "[^a]" [caseless]-        ["aaaabcd",-         "aaAabcd "]-        [Just ["b"],-         Just ["b"]]--    , testRegex "[^az]" []-        ["aaaabcd",-         "aaAabcd "]-        [Just ["b"],-         Just ["A"]]--    , testRegex "[^az]" [caseless]-        ["aaaabcd",-         "aaAabcd "]-        [Just ["b"],-         Just ["b"]]--    , testRegex "P[^*]TAIRE[^*]{1,6}?LL" []-        ["xxxxxxxxxxxPSTAIREISLLxxxxxxxxx"]-        [Just ["PSTAIREISLL"]]--    , testRegex "P[^*]TAIRE[^*]{1,}?LL" []-        ["xxxxxxxxxxxPSTAIREISLLxxxxxxxxx"]-        [Just ["PSTAIREISLL"]]--    , testRegex "(.*?)(\\d+)" []-        ["I have 2 numbers: 53147"]-        [Just ["I have 2", "I have ", "2"]]--    , testRegex "(.*)(\\d+)$" []-        ["I have 2 numbers: 53147"]-        [Just ["I have 2 numbers: 53147", "I have 2 numbers: 5314", "7"]]--    , testRegex "(.*?)(\\d+)$" []-        ["I have 2 numbers: 53147"]-        [Just ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"]]--    , testRegex "(.*)\\b(\\d+)$" []-        ["I have 2 numbers: 53147"]-        [Just ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"]]--    , testRegex "(.*\\D)(\\d+)$" []-        ["I have 2 numbers: 53147"]-        [Just ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"]]--    , testRegex "word (?:[a-zA-Z0-9]+ ){0,10}otherword" []-        ["word cat dog elephant mussel cow horse canary baboon snake shark otherword",-         "word cat dog elephant mussel cow horse canary baboon snake shark"]-        [Just ["word cat dog elephant mussel cow horse canary baboon snake shark otherword"],-         Nothing]--    , testRegex "word (?:[a-zA-Z0-9]+ ){0,300}otherword" []-        ["word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope"]-        [Nothing]-    , testRegex "^(a){0,0}" []-        ["bcd",-         "abc",-         "aab     "]-        [Just [""],-         Just [""],-         Just [""]]--    , testRegex "^(a){0,1}" []-        ["bcd",-         "abc",-         "aab  "]-        [Just [""],-         Just ["a", "a"],-         Just ["a", "a"]]--    , testRegex "^(a){0,2}" []-        ["bcd",-         "abc",-         "aab  "]-        [Just [""],-         Just ["a", "a"],-         Just ["aa", "a"]]--    , testRegex "^(a){0,3}" []-        ["bcd",-         "abc",-         "aab",-         "aaa   "]-        [Just [""],-         Just ["a", "a"],-         Just ["aa", "a"],-         Just ["aaa", "a"]]--    , testRegex "^(a){0,3}" []-        ["bcd",-         "abc",-         "aab",-         "aaa   "]-        [Just [""],-         Just ["a", "a"],-         Just ["aa", "a"],-         Just ["aaa", "a"]]--    , testRegex "^(a){0,}" []-        ["bcd",-         "abc",-         "aab",-         "aaa",-         "aaaaaaaa    "]-        [Just [""],-         Just ["a", "a"],-         Just ["aa", "a"],-         Just ["aaa", "a"],-         Just ["aaaaaaaa", "a"]]--    , testRegex "^(a){1,1}" []-        ["bcd",-         "abc",-         "aab  "]-        [Nothing,-         Just ["a", "a"],-         Just ["a", "a"]]--    , testRegex "^(a){1,2}" []-        ["bcd",-         "abc",-         "aab  "]-        [Nothing,-         Just ["a", "a"],-         Just ["aa", "a"]]--    , testRegex "^(a){1,3}" []-        ["bcd",-         "abc",-         "aab",-         "aaa   "]-        [Nothing,-         Just ["a", "a"],-         Just ["aa", "a"],-         Just ["aaa", "a"]]--    , testRegex ".*\\.gif" []-        ["borfle\nbib.gif\nno"]-        [Just ["bib.gif"]]--    , testRegex ".{0,}\\.gif" []-        ["borfle\nbib.gif\nno"]-        [Just ["bib.gif"]]--    , testRegex ".*\\.gif" [multiline]-        ["borfle\nbib.gif\nno"]-        [Just ["bib.gif"]]--    , testRegex ".*\\.gif" [dotall]-        ["borfle\nbib.gif\nno"]-        [Just ["borfle\nbib.gif"]]--    , testRegex ".*$" [multiline]-        ["borfle\nbib.gif\nno"]-        [Just ["borfle"]]--    , testRegex ".*$" [dotall]-        ["borfle\nbib.gif\nno"]-        [Just ["borfle\nbib.gif\nno"]]--    , testRegex ".*$" [multiline]-        ["borfle\nbib.gif\nno\\n"]-        [Just ["borfle"]]--    , testRegex "(?ms)^B" []-        ["abc\nB"]-        [Just ["B"]]--    , testRegex "(?s)B$" []-        ["B\n"]-        [Just ["B"]]--    , testRegex "^[abcdefghijklmnopqrstuvwxy0123456789]" []-        ["n",-         "z "]-        [Just ["n"],-         Nothing]--    , testRegex "abcde{0,0}" []-        ["abcd",-         "abce  "]-        [Just ["abcd"],-         Nothing]--    , testRegex "^(b+?|a){1,2}?c" []-        ["bac",-         "bbac",-         "bbbac",-         "bbbbac",-         "bbbbbac "]-        [Just ["bac","a"],-         Just ["bbac","a"],-         Just ["bbbac","a"],-         Just ["bbbbac","a"],-         Just ["bbbbbac","a"]]--    , testRegex "(AB)*?\\1" []-        ["ABABAB"]-        [Just ["ABAB", "AB"]]--    , testRegex "(.*(.)?)*" []-        ["abcd"]-        [Just ["abcd", ""]]--{--    , testRegex "(?:a|)*\\d" []-        ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]-        [Nothing,-         Just ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]]--}--    , testRegex "^(?:a(?:(?:))+)+" []-        ["aaaa"]-        [Just ["aaaa"]]--    , testRegex "^(a()+)+" []-        ["aaaa"]-        [Just ["aaaa", "a", ""]]--    , testRegex "^(?:a(?:(?:))*)*" []-        ["aaaa"]-        [Just ["aaaa"]]--    , testRegex "^(a()*)*" []-        ["aaaa"]-        [Just ["aaaa", "a", ""]]--  ]+import System.IO.Unsafe+import Control.Exception+import Control.Monad.Error++testRegex :: S.ByteString+     -> [PCREOption]+     -> [S.ByteString]+     -> [Maybe [S.ByteString]]+     -> Test++testRegex regex options inputs outputs = TestLabel (S.unpack regex) $+  TestCase $ do+     assertEqual "Input/Output Length Check" (length inputs) (length outputs)++     assertBool "ByteString regex compile" =<<+      case compile regex options of+        r -> return $+            and [ match r i [] == o+                | (i,o) <- zip inputs outputs ]++     assertBool "ByteString regex compileM" =<<+      case compileM regex options of+        Left s -> do hPutStrLn stderr ("ERROR in ByteString in compileM: " ++ s)+                     return False+        Right r -> return $+            and [ match r i [] == o+                | (i,o) <- zip inputs outputs ]++     assertBool "String regex" =<<+      case String.compile (S.unpack regex) options of+        r -> return $+            and [ String.match r i [] == o+                | (i,o) <- zip (map (S.unpack) inputs)+                               (map (fmap (map S.unpack)) outputs) ]++     assertBool "String regex" =<<+      case String.compileM (S.unpack regex) options of+        Left s -> do hPutStrLn stderr ("ERROR in String compileM: "  ++ s)+                     return False+        Right r -> return $+            and [ String.match r i [] == o+                | (i,o) <- zip (map (S.unpack) inputs)+                               (map (fmap (map S.unpack)) outputs) ]++main = do counts <- runTestTT tests+          when (errors counts > 0 || failures counts > 0) exitFailure++tests = TestList++    [ testRegex "the quick brown fox" []+           [ "the quick brown fox"+           , "The quick brown FOX"+           , "What do you know about the quick brown fox?"+           , "What do you know about THE QUICK BROWN FOX?"+           ]+           [ Just ["the quick brown fox"]+           , Nothing+           , Just ["the quick brown fox"]+           , Nothing+           ]++    , TestLabel "compile failure" $+            TestCase $ (assertBool "compile failure" $+                Left ("nothing to repeat"::String) == compileM "*" [])++    , TestLabel "compile failure" $+            TestCase $ (assertBool "compile failure" =<< (return $+                    (Just ("Text.Regex.PCRE.Light: Error in regex: \"*\""::String))+                    ==+                    (unsafePerformIO $ do+                        handle (\e -> return (Just (show e)))+                               (compile "*" [] `seq` return Nothing))))++--  , testRegex "\0*" [] -- the embedded null in the pattern seems to be a problem+--      ["\0\0\0\0"]+--      [Just ["\0\0\0\0"]]++    , testRegex "\1*" [] -- the embedded null in the pattern seems to be a problem+        ["\1\1\1\1"]+        [Just ["\1\1\1\1"]]++    , testRegex "The quick brown fox" [caseless]+           ["the quick brown fox"+           ,"The quick brown FOX"+           ,"What do you know about the quick brown fox?"+           ,"What do you know about THE QUICK BROWN FOX?"+           ]+           [ Just ["the quick brown fox"]+           , Just ["The quick brown FOX"]+           , Just ["the quick brown fox"]+           , Just ["THE QUICK BROWN FOX"]+           ]++     , testRegex "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" []+           ["abxyzpqrrrabbxyyyypqAzz"+           ,"abxyzpqrrrabbxyyyypqAzz"+           ,"aabxyzpqrrrabbxyyyypqAzz"+           ,"aaabxyzpqrrrabbxyyyypqAzz"+           ,"aaaabxyzpqrrrabbxyyyypqAzz"+           ,"abcxyzpqrrrabbxyyyypqAzz"+           ,"aabcxyzpqrrrabbxyyyypqAzz"+           ,"aaabcxyzpqrrrabbxyyyypAzz"+           ,"aaabcxyzpqrrrabbxyyyypqAzz"+           ,"aaabcxyzpqrrrabbxyyyypqqAzz"+           ,"aaabcxyzpqrrrabbxyyyypqqqAzz"+           ,"aaabcxyzpqrrrabbxyyyypqqqqAzz"+           ,"aaabcxyzpqrrrabbxyyyypqqqqqAzz"+           ,"aaabcxyzpqrrrabbxyyyypqqqqqqAzz"+           ,"aaaabcxyzpqrrrabbxyyyypqAzz"+           ,"abxyzzpqrrrabbxyyyypqAzz"+           ,"aabxyzzzpqrrrabbxyyyypqAzz"+           ,"aaabxyzzzzpqrrrabbxyyyypqAzz"+           ,"aaaabxyzzzzpqrrrabbxyyyypqAzz"+           ,"abcxyzzpqrrrabbxyyyypqAzz"+           ,"aabcxyzzzpqrrrabbxyyyypqAzz"+           ,"aaabcxyzzzzpqrrrabbxyyyypqAzz"+           ,"aaaabcxyzzzzpqrrrabbxyyyypqAzz"+           ,"aaaabcxyzzzzpqrrrabbbxyyyypqAzz"+           ,"aaaabcxyzzzzpqrrrabbbxyyyyypqAzz"+           ,"aaabcxyzpqrrrabbxyyyypABzz"+           ,"aaabcxyzpqrrrabbxyyyypABBzz"+           ,">>>aaabxyzpqrrrabbxyyyypqAzz"+           ,">aaaabxyzpqrrrabbxyyyypqAzz"+           ,">>>>abcxyzpqrrrabbxyyyypqAzz"+           ,"abxyzpqrrabbxyyyypqAzz"+           ,"abxyzpqrrrrabbxyyyypqAzz"+           ,"abxyzpqrrrabxyyyypqAzz"+           ,"aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz"+           ,"aaaabcxyzzzzpqrrrabbbxyyypqAzz"+           ,"aaabcxyzpqrrrabbxyyyypqqqqqqqAzz"+           ]++           [ Just ["abxyzpqrrrabbxyyyypqAzz"]+           , Just ["abxyzpqrrrabbxyyyypqAzz"]+           , Just ["aabxyzpqrrrabbxyyyypqAzz"]+           , Just ["aaabxyzpqrrrabbxyyyypqAzz"]+           , Just ["aaaabxyzpqrrrabbxyyyypqAzz"]+           , Just ["abcxyzpqrrrabbxyyyypqAzz"]+           , Just ["aabcxyzpqrrrabbxyyyypqAzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypAzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypqAzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypqqAzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypqqqAzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypqqqqAzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypqqqqqAzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypqqqqqqAzz"]+           , Just ["aaaabcxyzpqrrrabbxyyyypqAzz"]+           , Just ["abxyzzpqrrrabbxyyyypqAzz"]+           , Just ["aabxyzzzpqrrrabbxyyyypqAzz"]+           , Just ["aaabxyzzzzpqrrrabbxyyyypqAzz"]+           , Just ["aaaabxyzzzzpqrrrabbxyyyypqAzz"]+           , Just ["abcxyzzpqrrrabbxyyyypqAzz"]+           , Just ["aabcxyzzzpqrrrabbxyyyypqAzz"]+           , Just ["aaabcxyzzzzpqrrrabbxyyyypqAzz"]+           , Just ["aaaabcxyzzzzpqrrrabbxyyyypqAzz"]+           , Just ["aaaabcxyzzzzpqrrrabbbxyyyypqAzz"]+           , Just ["aaaabcxyzzzzpqrrrabbbxyyyyypqAzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypABzz"]+           , Just ["aaabcxyzpqrrrabbxyyyypABBzz"]+           , Just ["aaabxyzpqrrrabbxyyyypqAzz"]+           , Just ["aaaabxyzpqrrrabbxyyyypqAzz"]+           , Just ["abcxyzpqrrrabbxyyyypqAzz"]+           , Nothing+           , Nothing+           , Nothing+           , Nothing+           , Nothing+           , Nothing+           ]++    , testRegex "^(abc){1,2}zz" []+        ["abczz"+        ,"abcabczz"+        ,"zz"+        ,"abcabcabczz"+        ,">>abczz"]+        [ Just ["abczz","abc"]+        , Just ["abcabczz", "abc"]+        , Nothing+        , Nothing+        , Nothing ]++    , testRegex "^(b+?|a){1,2}?c" []+        ["bc",+         "bbc",+         "bbbc",+         "bac",+         "bbac",+         "aac",+         "abbbbbbbbbbbc",+         "bbbbbbbbbbbac",+         "aaac",+         "abbbbbbbbbbbac"]++        [Just ["bc", "b"],+         Just ["bbc", "b"],+         Just ["bbbc", "bb"],+         Just ["bac", "a"],+         Just ["bbac", "a"],+         Just ["aac", "a"],+         Just ["abbbbbbbbbbbc", "bbbbbbbbbbb"],+         Just ["bbbbbbbbbbbac", "a"],+         Nothing,+         Nothing]++    , testRegex "^(b+|a){1,2}c" []+        ["bc",+         "bbc",+         "bbbc",+         "bac",+         "bbac",+         "aac",+         "abbbbbbbbbbbc",+         "bbbbbbbbbbbac",+         "aaac",+         "abbbbbbbbbbbac"]+        [Just ["bc", "b"],+         Just ["bbc", "bb"],+         Just ["bbbc", "bbb"],+         Just ["bac", "a"],+         Just ["bbac", "a"],+         Just ["aac", "a"],+         Just ["abbbbbbbbbbbc", "bbbbbbbbbbb"],+         Just ["bbbbbbbbbbbac", "a"],+         Nothing,+         Nothing]++    , testRegex "^(b+|a){1,2}?bc" []+        ["bbc"]+        [Just ["bbc", "b"]]++    , testRegex "^(b*|ba){1,2}?bc" []+        ["babc",+         "bbabc",+         "bababc",+         "bababbc",+         "babababc"]+        [Just ["babc","ba"],+         Just ["bbabc","ba"],+         Just ["bababc","ba"],+         Nothing,+         Nothing]++    , testRegex "^(ba|b*){1,2}?bc" []+        ["babc",+         "bbabc",+         "bababc",+         "bababbc",+         "babababc"]+        [Just ["babc","ba"],+         Just ["bbabc","ba"],+         Just ["bababc","ba"],+         Nothing,+         Nothing]++    , testRegex "^[ab\\]cde]" []+        ["athing",+         "bthing",+         "]thing",+         "cthing",+         "dthing",+         "ething",+         "fthing",+         "[thing",+         "\\\\thing"]+        [Just ["a"],+         Just ["b"],+         Just ["]"],+         Just ["c"],+         Just ["d"],+         Just ["e"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^[]cde]" []+        ["]thing",+         "cthing",+         "dthing",+         "ething",+         "athing",+         "fthing"]+        [Just ["]"],+         Just ["c"],+         Just ["d"],+         Just ["e"],+         Nothing,+         Nothing]++    , testRegex "^[^ab\\]cde]" []+        ["fthing",+         "[thing",+         "\\\\thing",+         "athing",+         "bthing",+         "]thing",+         "cthing",+         "dthing",+         "ething"]+        [Just ["f"],+         Just ["["],+         Just ["\\"],+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^\129" []+        ["\129"]+        [Just ["\x81"]]++    , testRegex "^\255" []+        ["\255"]+        [Just ["\xff"]]++    , testRegex "^[0-9]+$" []+        ["0",+         "1",+         "2",+         "3",+         "4",+         "5",+         "6",+         "7",+         "8",+         "9",+         "10",+         "100",+         "abc"]+        [Just ["0"],+         Just ["1"],+         Just ["2"],+         Just ["3"],+         Just ["4"],+         Just ["5"],+         Just ["6"],+         Just ["7"],+         Just ["8"],+         Just ["9"],+         Just ["10"],+         Just ["100"],+         Nothing]++    , testRegex "^.*nter" []+        ["enter",+         "inter",+         "uponter"]+        [Just ["enter"],+         Just ["inter"],+         Just ["uponter"]]++    , testRegex "^xxx[0-9]+$" []+        ["xxx0",+         "xxx1234",+         "xxx"]+        [Just ["xxx0"],+         Just ["xxx1234"],+         Nothing]++    , testRegex "^.+[0-9][0-9][0-9]$" []+        ["x123",+         "xx123",+         "123456",+         "123",+         "x1234"]+        [Just ["x123"],+         Just ["xx123"],+         Just ["123456"],+         Nothing,+         Just ["x1234"]]++    , testRegex "^.+?[0-9][0-9][0-9]$" []+        ["x123",+         "xx123",+         "123456",+         "123",+         "x1234"]+        [Just ["x123"],+         Just ["xx123"],+         Just ["123456"],+         Nothing,+         Just ["x1234"]]++    -- test matching more than 1 subpattern+    , testRegex "^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$" []+        ["abc!pqr=apquxz.ixr.zzz.ac.uk",+         "!pqr=apquxz.ixr.zzz.ac.uk",+         "abc!=apquxz.ixr.zzz.ac.uk",+         "abc!pqr=apquxz:ixr.zzz.ac.uk",+         "abc!pqr=apquxz.ixr.zzz.ac.ukk"]+        [Just ["abc!pqr=apquxz.ixr.zzz.ac.uk", "abc", "pqr"],+         Nothing,+         Nothing,+         Nothing,+         Nothing]++    , testRegex ":" []+        ["Well, we need a colon: somewhere",+         "*** Fail if we don't"]+        [Just [":"],+         Nothing]++    , testRegex "([\\da-f:]+)$" [caseless]+        ["0abc",+         "abc",+         "fed",+         "E",+         "::",+         "5f03:12C0::932e",+         "fed def",+         "Any old stuff",+         "*** Failers",+         "0zzz",+         "gzzz",+         "fed\x20",+         "Any old rubbish"]+        [Just ["0abc", "0abc"],+         Just ["abc", "abc"],+         Just ["fed", "fed"],+         Just ["E", "E"],+         Just ["::", "::"],+         Just ["5f03:12C0::932e", "5f03:12C0::932e"],+         Just ["def", "def"],+         Just ["ff", "ff"],+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$" []+        [".1.2.3",+         "A.12.123.0",+         ".1.2.3333",+         "1.2.3",+         "1234.2.3"]+        [Just [".1.2.3", "1", "2", "3"],+         Just ["A.12.123.0", "12", "123", "0"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$" []+        ["1 IN SOA non-sp1 non-sp2(",+         "1    IN    SOA    non-sp1    non-sp2   (",+         "1IN SOA non-sp1 non-sp2("]+        [Just ["1 IN SOA non-sp1 non-sp2(", "1", "non-sp1", "non-sp2"],+         Just ["1    IN    SOA    non-sp1    non-sp2   (", "1", "non-sp1", "non-sp2"],+         Nothing]++    , testRegex "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" []+        ["a.",+         "Z.",+         "2.",+         "ab-c.pq-r.",+         "sxk.zzz.ac.uk.",+         "x-.y-.",+         "*** Failers",+         "-abc.peq."]+        [Just ["a."],+         Just ["Z."],+         Just ["2."],+         Just ["ab-c.pq-r.", ".pq-r"],+         Just ["sxk.zzz.ac.uk.", ".uk"],+         Just ["x-.y-.", ".y-"],+         Nothing,+         Nothing]++    , testRegex "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" []+        ["*.a",+         "*.b0-a",+         "*.c3-b.c",+         "*.c-a.b-c",+         "*** Failers",+         "*.0",+         "*.a-",+         "*.a-b.c-",+         "*.c-a.0-c"]+        [Just ["*.a"],+         Just ["*.b0-a", "0-a"],+         Just ["*.c3-b.c", "3-b", ".c"],+         Just ["*.c-a.b-c", "-a", ".b-c", "-c"],+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^(?=ab(de))(abd)(e)" []+        ["abde"]+        [Just ["abde", "de", "abd", "e"]]++    , testRegex "^(?!(ab)de|x)(abd)(f)" []+        ["abdf"]+        [Just ["abdf", "", "abd", "f"]]++    , testRegex "^(?=(ab(cd)))(ab)" []+        ["abcd"]+        [Just ["ab", "abcd", "cd", "ab"]]++    , testRegex "^[\\da-f](\\.[\\da-f])*$" [caseless]+        ["a.b.c.d",+         "A.B.C.D",+         "a.b.c.1.2.3.C"]+        [Just ["a.b.c.d", ".d"],+         Just ["A.B.C.D", ".D"],+         Just ["a.b.c.1.2.3.C", ".C"]]++    , testRegex "^\".*\"\\s*(;.*)?$" []+        ["\"1234\"",+         "\"abcd\" ;",+         "\"\" ; rhubarb",+         "*** Failers",+         "\\\"1234\\\" : things"]+        [Just ["\"1234\""],+         Just ["\"abcd\" ;", ";"],+         Just ["\"\" ; rhubarb", "; rhubarb"],+         Nothing,+         Nothing]++    , testRegex "^$" []+        ["",+         "*** Failers"]+        [Just [""],+         Nothing]++    , testRegex "   ^    a   (?# begins with a)  b\\sc (?# then b c) $ (?# then end)" [extended]+        ["ab c",+         "*** Failers",+         "abc",+         "ab cde"]+        [Just ["ab c"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "(?x)   ^    a   (?# begins with a)  b\\sc (?# then b c) $ (?# then end)" []+        ["ab c",+         "*** Failers",+         "abc",+         "ab cde"]+        [Just ["ab c"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^   a\\ b[c ]d       $" [extended]+        ["a bcd",+         "a b d",+         "*** Failers",+         "abcd",+         "ab d"]+        [Just ["a bcd"],+         Just ["a b d"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$" []+        ["abcdefhijklm"]+        [Just ["abcdefhijklm",+               "abc", "bc",+               "c", "def",+               "ef", "f",+               "hij", "ij",+               "j", "klm",+               "lm", "m"]]++    , testRegex "^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$" []+        ["abcdefhijklm"]+        [Just ["abcdefhijklm",+             "bc", "c", "ef", "f", "ij", "j", "lm", "m"]]++    , testRegex "^[.^$|()*+?{,}]+" []+        [".^$(*+)|{?,?}"]+        [Just [".^$(*+)|{?,?}"]]++    , testRegex "^a*\\w" []+        ["z",+         "az",+         "aaaz",+         "a",+         "aa",+         "aaaa",+         "a+",+         "aa+"]+        [Just ["z"],+         Just ["az"],+         Just ["aaaz"],+         Just ["a"],+         Just ["aa"],+         Just ["aaaa"],+         Just ["a"],+         Just ["aa"]]++    , testRegex "^a*?\\w" []+        ["z",+         "az",+         "aaaz",+         "a",+         "aa",+         "aaaa",+         "a+",+         "aa+"]+        [Just ["z"],+         Just ["a"],+         Just ["a"],+         Just ["a"],+         Just ["a"],+         Just ["a"],+         Just ["a"],+         Just ["a"]]++    , testRegex "^a+\\w" []+        ["az",+         "aaaz",+         "aa",+         "aaaa",+         "aa+"]+        [Just ["az"],+         Just ["aaaz"],+         Just ["aa"],+         Just ["aaaa"],+         Just ["aa"]]++    , testRegex "^a+?\\w" []+        ["az",+         "aaaz",+         "aa",+         "aaaa",+         "aa+"]+        [Just ["az"],+         Just ["aa"],+         Just ["aa"],+         Just ["aa"],+         Just ["aa"]]++    , testRegex "^\\d{8}\\w{2,}" []+        ["1234567890",+         "12345678ab",+         "12345678__",+         "*** Failers",+         "1234567"]+        [Just ["1234567890"],+         Just ["12345678ab"],+         Just ["12345678__"],+         Nothing,+         Nothing]++    , testRegex "^[aeiou\\d]{4,5}$" []+        ["uoie",+         "1234",+         "12345",+         "aaaaa",+         "*** Failers",+         "123456"]+        [Just ["uoie"],+         Just ["1234"],+         Just ["12345"],+         Just ["aaaaa"],+         Nothing,+         Nothing]++    , testRegex "^[aeiou\\d]{4,5}?" []+        ["uoie",+         "1234",+         "12345",+         "aaaaa",+         "123456"]+        [Just ["uoie"],+         Just ["1234"],+         Just ["1234"],+         Just ["aaaa"],+         Just ["1234"]]++    , testRegex "\\A(abc|def)=(\\1){2,3}\\Z" []+        ["abc=abcabc",+         "def=defdefdef",+         "*** Failers",+         "abc=defdef"]+        [Just ["abc=abcabc", "abc", "abc"],+         Just ["def=defdefdef", "def", "def"],+         Nothing,+         Nothing]++    , testRegex "^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$" []+        ["abcdefghijkcda2",+         "abcdefghijkkkkcda2"]+        [Just ["abcdefghijkcda2", "a", "b",+         "c", "d", "e", "f", "g", "h", "i", "j", "k", "cd"],++         Just ["abcdefghijkkkkcda2", "a", "b", "c", "d",+             "e", "f", "g", "h", "i", "j", "k", "cd"]]++    , testRegex "(cat(a(ract|tonic)|erpillar)) \\1()2(3)" []+        ["cataract cataract23",+         "catatonic catatonic23",+         "caterpillar caterpillar23"]++        [Just ["cataract cataract23", "cataract", "aract", "ract", "", "3"],++         Just ["catatonic catatonic23", "catatonic", "atonic", "tonic", "", "3"],++         Just ["caterpillar caterpillar23", "caterpillar", "erpillar", "", "", "3"]]++    , testRegex "^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]" []+        ["From abcd  Mon Sep 01 12:33:02 1997"]+        [Just ["From abcd  Mon Sep 01 12:33", "abcd"]]++    , testRegex "^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d" []+        ["From abcd  Mon Sep 01 12:33:02 1997",+         "From abcd  Mon Sep  1 12:33:02 1997",+         "*** Failers",+         "From abcd  Sep 01 12:33:02 1997"]+        [Just ["From abcd  Mon Sep 01 12:33", "Sep "],+         Just ["From abcd  Mon Sep  1 12:33", "Sep  "],+         Nothing,+         Nothing]++    , testRegex "\\w+(?=\t)" []+        ["the quick brown\t fox"]+        [Just ["brown"]]++    , testRegex "foo(?!bar)(.*)" []+        ["foobar is foolish see?"]+        [Just ["foolish see?", "lish see?"]]++    , testRegex "(?:(?!foo)...|^.{0,2})bar(.*)" []+        ["foobar crowbar etc",+         "barrel",+         "2barrel",+         "A barrel"]+        [Just ["rowbar etc", " etc"],+         Just ["barrel",     "rel"],+         Just ["2barrel",    "rel"],+         Just ["A barrel",   "rel"]]++    , testRegex "^(\\D*)(?=\\d)(?!123)" []+        ["abc456",+         "*** Failers",+         "abc123"]+        [Just ["abc", "abc"],+         Nothing,+         Nothing]++    , testRegex "^(a)\\1{2,3}(.)" []+        ["aaab",+         "aaaab",+         "aaaaab",+         "aaaaaab"]+        [Just ["aaab", "a","b"],+         Just ["aaaab","a","b"],+         Just ["aaaaa","a","a"],+         Just ["aaaaa","a","a"]]++    , testRegex "(?!^)abc" []+        ["the abc",+         "*** Failers",+         "abc"]+        [Just ["abc"],+         Nothing,+         Nothing]++    , testRegex "(?=^)abc" []+        ["abc",+         "*** Failers",+         "the abc"]+        [Just ["abc"],+         Nothing,+         Nothing]++    , testRegex "^[ab]{1,3}(ab*|b)" []+        ["aabbbbb"]+        [Just ["aabb", "b"]]++    , testRegex "^[ab]{1,3}?(ab*|b)" []+        ["aabbbbb"]+        [Just ["aabbbbb", "abbbbb"]]++    , testRegex "^[ab]{1,3}?(ab*?|b)" []+        ["aabbbbb"]+        [Just ["aa", "a"]]++    , testRegex "^[ab]{1,3}(ab*?|b)" []+        ["aabbbbb"]+        [Just ["aabb", "b"]]++    , testRegex "^(cow|)\\1(bell)" []+        ["cowcowbell",+         "bell",+         "*** Failers",+         "cowbell"]+        [Just ["cowcowbell", "cow", "bell"],+         Just ["bell", "", "bell"],+         Nothing,+         Nothing]++    , testRegex "^\\s" []+        ["\o40abc",+         "\nabc",+         "\rabc",+         "\tabc",+         "abc"]+        [Just [" "],+         Just ["\x0a"],+         Just ["\x0d"],+         Just ["\x09"],+         Nothing]++    , testRegex "^(a|)\\1*b" []+        ["ab",+         "aaaab",+         "b",+         "acb"]+        [Just ["ab", "a"],+         Just ["aaaab", "a"],+         Just ["b", ""],+         Nothing]++    , testRegex "^(a|)\\1+b" []+        ["aab",+         "aaaab",+         "b",+         "*** Failers",+         "ab"]+        [Just ["aab", "a"],+         Just ["aaaab", "a"],+         Just ["b", ""],+         Nothing,+         Nothing]++    , testRegex "^(a|)\\1?b" []+        ["ab",+         "aab",+         "b",+         "acb"]+        [Just ["ab", "a"],+         Just ["aab", "a"],+         Just ["b", ""],+         Nothing]++    , testRegex "^(a|)\\1{2}b" []+        ["aaab",+         "b",+         "ab",+         "aab",+         "aaaab"]+        [Just ["aaab", "a"],+         Just ["b", ""],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^(a|)\\1{2,3}b" []+        ["aaab",+         "aaaab",+         "b",+         "ab",+         "aab",+         "aaaaab"]+        [Just ["aaab", "a"],+         Just ["aaaab", "a"],+         Just ["b", ""],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "ab{1,3}bc" []+        ["abbbbc",+         "abbbc",+         "abbc",+         "abc",+         "abbbbbc"]+        [Just ["abbbbc"],+         Just ["abbbc"],+         Just ["abbc"],+         Nothing,+         Nothing]++    , testRegex "([^.]*)\\.([^:]*):[T ]+(.*)" []+        ["track1.title:TBlah blah blah"]+        [Just ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"]]++    , testRegex "([^.]*)\\.([^:]*):[T ]+(.*)" [caseless]+        ["track1.title:TBlah blah blah"]+        [Just ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"]]++    , testRegex "([^.]*)\\.([^:]*):[t ]+(.*)" [caseless]+        ["track1.title:TBlah blah blah"]+        [Just ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"]]++    , testRegex "^[W-c]+$" []+        ["WXY_^abc",+         "wxy"]+        [Just ["WXY_^abc"],+         Nothing]++    , testRegex "^[W-c]+$" [caseless]+        ["WXY_^abc",+         "wxy_^ABC"]+        [Just ["WXY_^abc"],+         Just ["wxy_^ABC"]]++    , testRegex "^[\\x3f-\\x5F]+$" [caseless]+        ["WXY_^abc",+         "wxy_^ABC"]+        [Just ["WXY_^abc"],+         Just ["wxy_^ABC"]]++    , testRegex "^abc$" []+        ["abc",+         "qqq\\nabc",+         "abc\\nzzz",+         "qqq\\nabc\\nzzz"]+        [Just ["abc"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "(?:b)|(?::+)" []+        ["b::c",+         "c::b"]+        [Just ["b"],+         Just ["::"]]++    , testRegex "[-az]+" []+        ["az-",+         "*** Failers",+         "b"]+        [Just ["az-"],+         Just ["a"],+         Nothing]++    , testRegex "[az-]+" []+        ["za-",+         "*** Failers",+         "b"]+        [Just ["za-"],+         Just ["a"],+         Nothing]++    , testRegex "[a\\-z]+" []+        ["a-z",+         "*** Failers",+         "b"]+        [Just ["a-z"],+         Just ["a"],+         Nothing]++    , testRegex "[a-z]+" []+        ["abcdxyz"]+        [Just ["abcdxyz"]]++    , testRegex "[\\d-]+" []+        ["12-34",+         "aaa"]+        [Just ["12-34"],+         Nothing]+    , testRegex "[\\d-z]+" []+        ["12-34z",+         "aaa"]+        [Just ["12-34z"],+         Nothing]++    , testRegex "\\x20Z" []+        ["the Zoo",+         "*** Failers",+         "Zulu"]+        [Just [" Z"],+         Nothing,+         Nothing]++    , testRegex "(abc)\\1" [caseless]+        ["abcabc",+         "ABCabc",+         "abcABC"]+        [Just ["abcabc", "abc"],+         Just ["ABCabc", "ABC"],+         Just ["abcABC", "abc"]]++    , testRegex "ab{3cd" []+        ["ab{3cd"]+        [Just ["ab{3cd"]]++    , testRegex "ab{3,cd" []+        ["ab{3,cd"]+        [Just ["ab{3,cd"]]++    , testRegex "ab{3,4a}cd" []+        ["ab{3,4a}cd"]+        [Just ["ab{3,4a}cd"]]++    , testRegex "{4,5a}bc" []+        ["{4,5a}bc"]+        [Just ["{4,5a}bc"]]++    , testRegex "abc$" []+        ["abc",+         "abc\n",+         "*** Failers",+         "abc\ndef"]+        [Just ["abc"],+         Just ["abc"],+         Nothing,+         Nothing]++    , testRegex "(abc)\\123" []+        ["abc\x53"]+        [Just ["abcS", "abc"]]++    , testRegex "(abc)\\223" []+        ["abc\x93"]+        [Just ["abc\x93", "abc"]]++    , testRegex "(abc)\\323" []+        ["abc\xd3"]+        [Just ["abc\xd3", "abc"]]++    , testRegex "(abc)\\100" []+        ["abc\x40",+         "abc\o100"]+        [Just ["abc@", "abc"],+         Just ["abc@", "abc"]]++    , testRegex "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123" []+        ["abcdefghijkllS"]+        [Just ["abcdefghijkllS",+             "a",+             "b",+             "c",+             "d",+             "e",+             "f",+             "g",+             "h",+             "i",+             "j",+             "k",+             "l"]]++     , testRegex "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123" []+        ["abcdefghijk\o12S"]+        [Just ["abcdefghijk\x0aS",+             "a",+             "b",+             "c",+             "d",+             "e",+             "f",+             "g",+             "h",+             "i",+             "j",+             "k"]]++    , testRegex "ab\\idef" []+        ["abidef"]+        [Just ["abidef"]]++    , testRegex "a{0}bc" []+        ["bc"]+        [Just ["bc"]]++    , testRegex "(a|(bc)){0,0}?xyz" []+        ["xyz"]+        [Just ["xyz"]]++    , testRegex "(?s)a.b" []+        ["a\nb"]+        [Just ["a\nb"]]++    , testRegex "^([^a])([^\\b])([^c]*)([^d]{3,4})" []+        ["baNOTccccd",+         "baNOTcccd",+         "baNOTccd",+         "bacccd",+         "anything",+         "b\bc   ",+         "baccd"]+        [Just ["baNOTcccc", "b", "a", "NOT", "cccc"],+         Just ["baNOTccc", "b", "a", "NOT", "ccc"],+         Just ["baNOTcc", "b", "a", "NO", "Tcc"],+         Just ["baccc", "b", "a", "", "ccc"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^\\d{8,}\\@.+[^k]$" []+        ["12345678@a.b.c.d",+         "123456789@x.y.z",+         "*** Failers",+         "12345678@x.y.uk",+         "1234567@a.b.c.d       "]+        [Just ["12345678@a.b.c.d"],+         Just ["123456789@x.y.z"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "(a)\\1{8,}" []+        ["aaaaaaaaa",+         "aaaaaaaaaa",+         "*** Failers",+         "aaaaaaa   "]+        [Just ["aaaaaaaaa", "a"],+         Just ["aaaaaaaaaa", "a"],+         Nothing,+         Nothing]++    , testRegex "[^a]" []+        ["aaaabcd",+         "aaAabcd "]+        [Just ["b"],+         Just ["A"]]++    , testRegex "[^a]" [caseless]+        ["aaaabcd",+         "aaAabcd "]+        [Just ["b"],+         Just ["b"]]++    , testRegex "[^az]" []+        ["aaaabcd",+         "aaAabcd "]+        [Just ["b"],+         Just ["A"]]++    , testRegex "[^az]" [caseless]+        ["aaaabcd",+         "aaAabcd "]+        [Just ["b"],+         Just ["b"]]++    , testRegex "P[^*]TAIRE[^*]{1,6}?LL" []+        ["xxxxxxxxxxxPSTAIREISLLxxxxxxxxx"]+        [Just ["PSTAIREISLL"]]++    , testRegex "P[^*]TAIRE[^*]{1,}?LL" []+        ["xxxxxxxxxxxPSTAIREISLLxxxxxxxxx"]+        [Just ["PSTAIREISLL"]]++    , testRegex "(.*?)(\\d+)" []+        ["I have 2 numbers: 53147"]+        [Just ["I have 2", "I have ", "2"]]++    , testRegex "(.*)(\\d+)$" []+        ["I have 2 numbers: 53147"]+        [Just ["I have 2 numbers: 53147", "I have 2 numbers: 5314", "7"]]++    , testRegex "(.*?)(\\d+)$" []+        ["I have 2 numbers: 53147"]+        [Just ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"]]++    , testRegex "(.*)\\b(\\d+)$" []+        ["I have 2 numbers: 53147"]+        [Just ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"]]++    , testRegex "(.*\\D)(\\d+)$" []+        ["I have 2 numbers: 53147"]+        [Just ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"]]++    , testRegex "word (?:[a-zA-Z0-9]+ ){0,10}otherword" []+        ["word cat dog elephant mussel cow horse canary baboon snake shark otherword",+         "word cat dog elephant mussel cow horse canary baboon snake shark"]+        [Just ["word cat dog elephant mussel cow horse canary baboon snake shark otherword"],+         Nothing]++    , testRegex "word (?:[a-zA-Z0-9]+ ){0,300}otherword" []+        ["word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope"]+        [Nothing]+    , testRegex "^(a){0,0}" []+        ["bcd",+         "abc",+         "aab     "]+        [Just [""],+         Just [""],+         Just [""]]++    , testRegex "^(a){0,1}" []+        ["bcd",+         "abc",+         "aab  "]+        [Just [""],+         Just ["a", "a"],+         Just ["a", "a"]]++    , testRegex "^(a){0,2}" []+        ["bcd",+         "abc",+         "aab  "]+        [Just [""],+         Just ["a", "a"],+         Just ["aa", "a"]]++    , testRegex "^(a){0,3}" []+        ["bcd",+         "abc",+         "aab",+         "aaa   "]+        [Just [""],+         Just ["a", "a"],+         Just ["aa", "a"],+         Just ["aaa", "a"]]++    , testRegex "^(a){0,3}" []+        ["bcd",+         "abc",+         "aab",+         "aaa   "]+        [Just [""],+         Just ["a", "a"],+         Just ["aa", "a"],+         Just ["aaa", "a"]]++    , testRegex "^(a){0,}" []+        ["bcd",+         "abc",+         "aab",+         "aaa",+         "aaaaaaaa    "]+        [Just [""],+         Just ["a", "a"],+         Just ["aa", "a"],+         Just ["aaa", "a"],+         Just ["aaaaaaaa", "a"]]++    , testRegex "^(a){1,1}" []+        ["bcd",+         "abc",+         "aab  "]+        [Nothing,+         Just ["a", "a"],+         Just ["a", "a"]]++    , testRegex "^(a){1,2}" []+        ["bcd",+         "abc",+         "aab  "]+        [Nothing,+         Just ["a", "a"],+         Just ["aa", "a"]]++    , testRegex "^(a){1,3}" []+        ["bcd",+         "abc",+         "aab",+         "aaa   "]+        [Nothing,+         Just ["a", "a"],+         Just ["aa", "a"],+         Just ["aaa", "a"]]++    , testRegex ".*\\.gif" []+        ["borfle\nbib.gif\nno"]+        [Just ["bib.gif"]]++    , testRegex ".{0,}\\.gif" []+        ["borfle\nbib.gif\nno"]+        [Just ["bib.gif"]]++    , testRegex ".*\\.gif" [multiline]+        ["borfle\nbib.gif\nno"]+        [Just ["bib.gif"]]++    , testRegex ".*\\.gif" [dotall]+        ["borfle\nbib.gif\nno"]+        [Just ["borfle\nbib.gif"]]++    , testRegex ".*$" [multiline]+        ["borfle\nbib.gif\nno"]+        [Just ["borfle"]]++    , testRegex ".*$" [dotall]+        ["borfle\nbib.gif\nno"]+        [Just ["borfle\nbib.gif\nno"]]++    , testRegex ".*$" [multiline]+        ["borfle\nbib.gif\nno\\n"]+        [Just ["borfle"]]++    , testRegex "(?ms)^B" []+        ["abc\nB"]+        [Just ["B"]]++    , testRegex "(?s)B$" []+        ["B\n"]+        [Just ["B"]]++    , testRegex "^[abcdefghijklmnopqrstuvwxy0123456789]" []+        ["n",+         "z "]+        [Just ["n"],+         Nothing]++    , testRegex "abcde{0,0}" []+        ["abcd",+         "abce  "]+        [Just ["abcd"],+         Nothing]++    , testRegex "^(b+?|a){1,2}?c" []+        ["bac",+         "bbac",+         "bbbac",+         "bbbbac",+         "bbbbbac "]+        [Just ["bac","a"],+         Just ["bbac","a"],+         Just ["bbbac","a"],+         Just ["bbbbac","a"],+         Just ["bbbbbac","a"]]++    , testRegex "(AB)*?\\1" []+        ["ABABAB"]+        [Just ["ABAB", "AB"]]++    , testRegex "(.*(.)?)*" []+        ["abcd"]+        [Just ["abcd", ""]]++{-+    , testRegex "(?:a|)*\\d" []+        ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",+         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]+        [Nothing,+         Just ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]]+-}++    , testRegex "^(?:a(?:(?:))+)+" []+        ["aaaa"]+        [Just ["aaaa"]]++    , testRegex "^(a()+)+" []+        ["aaaa"]+        [Just ["aaaa", "a", ""]]++    , testRegex "^(?:a(?:(?:))*)*" []+        ["aaaa"]+        [Just ["aaaa"]]++    , testRegex "^(a()*)*" []+        ["aaaa"]+        [Just ["aaaa", "a", ""]]++    , testRegex "^(a){1,}" []+        ["bcd",+         "abc",+         "aab",+         "aaa",+         "aaaaaaaa    "]+        [Nothing,+         Just ["a", "a"],+         Just ["aa", "a"],+         Just ["aaa", "a"],+         Just ["aaaaaaaa", "a"]]++    , testRegex "(?s)(.*X|^B)" []+        ["abcde\n1234Xyz",+         "BarFoo ",+         "*** Failers ",+         "abcde\nBar  "]+        [Just ["abcde\n1234X", "abcde\n1234X"],+         Just ["B", "B"],+         Nothing,+         Nothing]++    , testRegex "(?s:.*X|^B)" []+        ["abcde\n1234Xyz",+         "BarFoo ",+         "*** Failers ",+         "abcde\nBar  "]+        [Just ["abcde\n1234X"],+         Just ["B"],+         Nothing,+         Nothing]++    , testRegex "\\w{3}(?<!bar)foo" []+        ["catfood",+         "*** Failers",+         "foo",+         "barfoo",+         "towbarfoo"]+        [Just ["catfoo"],+         Nothing,+         Nothing,+         Nothing,+         Nothing]++    , testRegex "(?>(\\.\\d\\d[1-9]?))\\d+" []+        ["1.230003938",+         "1.875000282",+         "1.235 "]+        [Just [".230003938", ".23"],+         Just [".875000282", ".875"],+         Nothing]++    , testRegex "^((?>\\w+)|(?>\\s+))*$" []+        ["now is the time for all good men to come to the aid of the party",+         "this is not a line with only words and spaces!"]+        [Just ["now is the time for all good men to come to the aid of the party", "party"],+         Nothing]++    , testRegex "((?>\\d+))(\\w)" []+        ["12345a",+         "12345+ "]+        [Just ["12345a", "12345", "a"],+         Nothing]++    , testRegex "(?>a+)b" []+        ["aaab"]+        [Just ["aaab"]]++    , testRegex "((?>a+)b)" []+        ["aaab"]+        [Just ["aaab", "aaab"]]++    , testRegex "(?>(a+))b" []+        ["aaab"]+        [Just ["aaab", "aaa"]]+    , testRegex "(?>b)+" []+        ["aaabbbccc"]+        [Just ["bbb"]]++    , testRegex "(?>a+|b+|c+)*c" []+        ["aaabbbbccccd"]+        [Just ["aaabbbbc"]]++    , testRegex "(?:(a)|b)(?(1)A|B)" []+        ["aA",+         "bB",+         "aB",+         "bA    "]+        [Just ["aA", "a"],+         Just ["bB"],+         Nothing,+         Nothing]++    , testRegex "^(a)?(?(1)a|b)+$" []+        ["aa",+         "b",+--       "bb  ", -- ?+         "ab   "]+        [Just ["aa", "a"],+         Just ["b"],+--       Just ["bb"],+         Nothing]++    , testRegex "^(?(?=abc)\\w{3}:|\\d\\d)$" []+        ["abc:",+         "12",+         "123",+         "xyz    "]+        [Just ["abc:"],+         Just ["12"],+         Nothing,+         Nothing]++    , testRegex "(?(?<!foo)cat|bar)" []+        ["foobar",+         "cat",+         "fcat",+         "focat   ",+         "foocat  "]+        [Just ["bar"],+         Just ["cat"],+         Just ["cat"],+         Just ["cat"],+         Nothing]++    , testRegex "^(?(2)a|(1)(2))+$" []+        ["12",+         "12a",+         "12aa",+         "*** Failers",+         "1234    "]+        [Just ["12", "1", "2"],+         Just ["12a", "1", "2"],+         Just ["12aa", "1", "2"],+         Nothing,+         Nothing]++    , testRegex "(?<=foo\\n)^bar" [multiline]+        ["foo\nbar",+         "*** Failers",+         "bar",+         "baz\nbar   "]+        [Just ["bar"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "(?<=(?<!foo)bar)baz" []+        ["barbaz",+         "barbarbaz ",+         "koobarbaz ",+         "*** Failers",+         "baz",+         "foobarbaz "]+        [Just ["baz"],+         Just ["baz"],+         Just ["baz"],+         Nothing,+         Nothing,+         Nothing]++    , testRegex "^(a\\1?){4}$" []+        ["a",+         "aa",+         "aaa",+         "aaaa",+         "aaaaa",+         "aaaaaaa",+         "aaaaaaaa",+         "aaaaaaaaa",+         "aaaaaaaaaa",+         "aaaaaaaaaaa",+         "aaaaaaaaaaaa",+         "aaaaaaaaaaaaa",+         "aaaaaaaaaaaaaa",+         "aaaaaaaaaaaaaaa",+         "aaaaaaaaaaaaaaaa               "]+        [Nothing,+         Nothing,+         Nothing,+         Just ["aaaa", "a"],+         Just ["aaaaa", "a"],+         Just ["aaaaaaa", "a"],+         Nothing,+         Nothing,+         Just ["aaaaaaaaaa", "aaaa"],+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing]++    , testRegex "abc" []+        ["abc",+         "xabcy",+         "ababc",+         "*** Failers",+         "xbc",+         "axc",+         "abx"]+        [Just ["abc"],+         Just ["abc"],+         Just ["abc"],+         Nothing,+         Nothing,+         Nothing,+         Nothing]++    , testRegex "ab*c" []+        ["abc"]+        [Just ["abc"]]+    , testRegex "ab*bc" []+        ["abc",+         "abbc",+         "abbbbc"]+        [Just ["abc"],+         Just ["abbc"],+         Just ["abbbbc"]]++    , testRegex ".{1}" []+        ["abbbbc"]+        [Just ["a"]]++    , testRegex ".{3,4}" []+        ["abbbbc"]+        [Just ["abbb"]]++    , testRegex "ab{0,}bc" []+        ["abbbbc"]+        [Just ["abbbbc"]]++    , testRegex "ab+bc" []+        ["abbc",+         "abc",+         "abq"]+        [Just ["abbc"],+         Nothing,+         Nothing]++    , testRegex "ab{1,}bc" []+        []+        []++    , testRegex "ab+bc" []+        ["abbbbc"]+        [Just ["abbbbc"]]++    , testRegex "ab{1,}bc" []+        ["abbbbc"]+        [Just ["abbbbc"]]++    , testRegex "ab{1,3}bc" []+        ["abbbbc"]+        [Just ["abbbbc"]]++    , testRegex "ab{3,4}bc" []+        ["abbbbc"]+        [Just ["abbbbc"]]++    , testRegex "ab{4,5}bc" []+        ["*** Failers",+         "abq",+         "abbbbc"]+        [Nothing,+         Nothing,+         Nothing]++    , testRegex "ab?bc" []+        ["abbc",+         "abc"]+        [Just ["abbc"],+         Just ["abc"]]++    , testRegex "ab{0,1}bc" []+        ["abc"]+        [Just ["abc"]]++    , testRegex "ab?bc" []+        []+        []++    , testRegex "ab?c" []+        ["abc"]+        [Just ["abc"]]++    , testRegex "ab{0,1}c" []+        ["abc"]+        [Just ["abc"]]++    , testRegex "^abc$" []+        ["abc",+         "abbbbc",+         "abcc"]+        [Just ["abc"],+         Nothing,+         Nothing]++    , testRegex "^abc" []+        ["abcc"]+        [Just ["abc"]]++    , testRegex "^abc$" []+        []+        []++    , testRegex "abc$" []+        ["aabc",+         "*** Failers",+         "aabc",+         "aabcd"]+        [Just ["abc"],+         Nothing,+         Just ["abc"],+         Nothing]++    , testRegex "^" []+        ["abc"]+        [Just [""]]+    ,++    testRegex "$" []+        ["abc"]+        [Just [""]]+    ,++    testRegex "a.c" []+        ["abc",+         "axc"]+        [Just ["abc"],+         Just ["axc"]]+    ,++    testRegex "a.*c" []+        ["axyzc"]+        [Just ["axyzc"]]+    ,++    testRegex "a[bc]d" []+        ["abd",+         "*** Failers",+         "axyzd",+         "abc"]+        [Just ["abd"],+         Nothing,+         Nothing,+         Nothing]+    ,++    testRegex "a[b-d]e" []+        ["ace"]+        [Just ["ace"]]+    ,++    testRegex "a[b-d]" []+        ["aac"]+        [Just ["ac"]]+    ,++    testRegex "a[-b]" []+        ["a-"]+        [Just ["a-"]]+    ,++    testRegex "a[b-]" []+        ["a-"]+        [Just ["a-"]]+    ,+++    testRegex "a]" []+        ["a]"]+        [Just ["a]"]]+    ,+++    testRegex "a[]]b" []+        ["a]b"]+        [Just ["a]b"]]+    ,++    testRegex "a[^bc]d" []+        ["aed",+         "*** Failers",+         "abd",+         "abd"]+        [Just ["aed"],+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "a[^-b]c" []+        ["adc"]+        [Just ["adc"]]+    ,++    testRegex "a[^]b]c" []+        ["adc",+         "*** Failers",+         "a-c",+         "a]c"]+        [Just ["adc"],+         Nothing,+         Just ["a-c"],+         Nothing]+    ,+++    testRegex "\\ba\\b" []+        ["a-",+         "-a",+         "-a-"]+        [Just ["a"],+         Just ["a"],+         Just ["a"]]+    ,+++    testRegex "\\by\\b" []+        ["*** Failers",+         "xy",+         "yz",+         "xyz"]+        [Nothing,+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "\\Ba\\B" []+        ["*** Failers",+         "a-",+         "-a",+         "-a-"]+        [Just ["a"],+         Nothing,+         Nothing,+         Nothing]+    ,++    testRegex "\\By\\b" []+        ["xy"]+        [Just ["y"]]+    ,+++    testRegex "\\by\\B" []+        ["yz"]+        [Just ["y"]]+    ,+++    testRegex "\\By\\B" []+        ["xyz"]+        [Just ["y"]]+    ,++    testRegex "\\w" []+        ["a"]+        [Just ["a"]]+    ,+++    testRegex "\\W" []+        ["-",+         "*** Failers",+         "-",+         "a"]+        [Just ["-"],+         Just ["*"],+         Just ["-"],+         Nothing]+    ,+++    testRegex "a\\sb" []+        ["a b"]+        [Just ["a b"]]+    ,+++    testRegex "a\\Sb" []+        ["a-b",+         "*** Failers",+         "a-b",+         "a b"]+        [Just ["a-b"],+         Nothing,+         Just ["a-b"],+         Nothing]+    ,+++    testRegex "\\d" []+        ["1"]+        [Just ["1"]]+    ,+++    testRegex "\\D" []+        ["-",+         "*** Failers",+         "-",+         "1"]+        [Just ["-"],+         Just ["*"],+         Just ["-"],+         Nothing]+    ,+++    testRegex "[\\w]" []+        ["a"]+        [Just ["a"]]+    ,+++    testRegex "[\\W]" []+        ["-",+         "*** Failers",+         "-",+         "a"]+        [Just ["-"],+         Just ["*"],+         Just ["-"],+         Nothing]+    ,+++    testRegex "a[\\s]b" []+        ["a b"]+        [Just ["a b"]]+    ,+++    testRegex "a[\\S]b" []+        ["a-b",+         "*** Failers",+         "a-b",+         "a b"]+        [Just ["a-b"],+         Nothing,+         Just ["a-b"],+         Nothing]+    ,++    testRegex "[\\d]" []+        ["1"]+        [Just ["1"]]+    ,+++    testRegex "[\\D]" []+        ["-",+         "*** Failers",+         "-",+         "1"]+        [Just ["-"],+         Just ["*"],+         Just ["-"],+         Nothing]+    ,+++    testRegex "ab|cd" []+        ["abc",+         "abcd"]+        [Just ["ab"],+         Just ["ab"]]+    ,++++    testRegex "$b" []+        []+        []+    ,+++    testRegex "a\\(b" []+        ["a(b"]+        [Just ["a(b"]]+    ,+++    testRegex "a\\(*b" []+        ["ab",+         "a((b"]+        [Just ["ab"],+         Just ["a((b"]]+    ,+++    testRegex "((a))" []+        ["abc"]+        [Just ["a", "a", "a"]]+    ,+++    testRegex "(a)b(c)" []+        ["abc"]+        [Just ["abc", "a", "c"]]++    ,+    testRegex "a+b+c" []+        ["aabbabc"]+        [Just ["abc"]]+    ,+++    testRegex "a{1,}b{1,}c" []+        ["aabbabc"]+        [Just ["abc"]]+    ,+++    testRegex "a.+?c" []+        ["abcabc"]+        [Just ["abc"]]+    ,+++    testRegex "(a+|b)*" []+        ["ab"]+        [Just ["ab", "b"]]+    ,+++    testRegex "(a+|b){0,}" []+        ["ab"]+        [Just ["ab", "b"]]+    ,+++    testRegex "(a+|b)+" []+        ["ab"]+        [Just ["ab","b"]]+    ,+++    testRegex "(a+|b){1,}" []+        ["ab"]+        [Just ["ab", "b"]]+    ,+++    testRegex "(a+|b)?" []+        ["ab"]+        [Just ["a", "a"]]+    ,+++    testRegex "(a+|b){0,1}" []+        ["ab"]+        [Just ["a", "a"]]+    ,+++    testRegex "[^ab]*" []+        ["cde"]+        [Just ["cde"]]++    ,++    testRegex "abc" []+        ["b"]+        [Nothing]+    ,+++    testRegex "a*" []+        [""]+        [Just [""]]+    ,+++    testRegex "([abc])*d" []+        ["abbbcd"]+        [Just ["abbbcd", "c"]]+    ,+++    testRegex "([abc])*bcd" []+        ["abcd"]+        [Just ["abcd", "a"]]+    ,+++    testRegex "a|b|c|d|e" []+        ["e"]+        [Just ["e"]]+    ,+++    testRegex "(a|b|c|d|e)f" []+        ["ef"]+        [Just ["ef", "e"]]+    ,+++    testRegex "abcd*efg" []+        ["abcdefg"]+        [Just ["abcdefg"]]+    ,+++    testRegex "ab*" []+        ["xabyabbbz",+         "xayabbbz"]+        [Just ["ab"],+         Just ["a"]]+    ,+++    testRegex "(ab|cd)e" []+        ["abcde"]+        [Just ["cde", "cd"]]+    ,+++    testRegex "[abhgefdc]ij" []+        ["hij"]+        [Just ["hij"]]++    , testRegex "^(ab|cd)e" []+        []+        []+    ,++    testRegex "(abc|)ef" []+        ["abcdef"]+        [Just ["ef", ""]]+    ,+++    testRegex "(a|b)c*d" []+        ["abcd"]+        [Just ["bcd", "b"]]+    ,+++    testRegex "(ab|ab*)bc" []+        ["abc"]+        [Just ["abc", "a"]]+    ,+++    testRegex "a([bc]*)c*" []+        ["abc"]+        [Just ["abc", "bc"]]+    ,+++    testRegex "a([bc]*)(c*d)" []+        ["abcd"]+        [Just ["abcd", "bc", "d"]]+    ,+++    testRegex "a([bc]+)(c*d)" []+        ["abcd"]+        [Just ["abcd", "bc", "d"]]+    ,+++    testRegex "a([bc]*)(c+d)" []+        ["abcd"]+        [Just ["abcd", "b", "cd"]]+    ,+++    testRegex "a[bcd]*dcdcde" []+        ["adcdcde"]+        [Just ["adcdcde"]]+    ,+++    testRegex "a[bcd]+dcdcde" []+        ["*** Failers",+         "abcde",+         "adcdcde"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(ab|a)b*c" []+        ["abc"]+        [Just ["abc", "ab"]]++    ,++    testRegex "((a)(b)c)(d)" []+        ["abcd"]+        [Just ["abcd", "abc", "a", "b", "d"]]+    ,+++    testRegex "[a-zA-Z_][a-zA-Z0-9_]*" []+        ["alpha"]+        [Just ["alpha"]]+    ,+++    testRegex "^a(bc+|b[eh])g|.h$" []+        ["abh"]+        [Just ["bh"]]+    ,+++    testRegex "(bc+d$|ef*g.|h?i(j|k))" []+        ["effgz",+         "ij",+         "reffgz",+         "*** Failers",+         "effg",+         "bcdd"]+        [Just ["effgz", "effgz"],+         Just ["ij", "ij", "j"],+         Just ["effgz", "effgz"],+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "((((((((((a))))))))))" []+        ["a"]+        [Just ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"]]+    ,+++    testRegex "((((((((((a))))))))))\\10" []+        ["aa"]+        [Just ["aa", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"]]+    ,+++    testRegex "(((((((((a)))))))))" []+        ["a"]+        [Just ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a"]]+    ,+++    testRegex "multiple words of text" []+        ["*** Failers",+         "aa",+         "uh-uh"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "multiple words" []+        ["multiple words, yeah"]+        [Just ["multiple words"]]+    ,+++    testRegex "(.*)c(.*)" []+        ["abcde"]+        [Just ["abcde", "ab", "de"]]+    ,++    testRegex "\\((.*), (.*)\\)" []+        ["(a, b)"]+        [Just ["(a, b)", "a", "b"]]+    ,+++    testRegex "[k]" []+        []+        []+    ,+++    testRegex "abcd" []+        ["abcd"]+        [Just ["abcd"]]+    ,+++    testRegex "a(bc)d" []+        ["abcd"]+        [Just ["abcd", "bc"]]+    ,+++    testRegex "a[-]?c" []+        ["ac"]+        [Just ["ac"]]+    ,+++    testRegex "(abc)\\1" []+        ["abcabc"]+        [Just ["abcabc", "abc"]]+    ,+++    testRegex "([a-c]*)\\1" []+        ["abcabc"]+        [Just ["abcabc", "abc"]]+    ,+++    testRegex "(a)|\\1" []+        ["a",+         "*** Failers",+         "ab",+         "x"]+        [Just ["a", "a"],+         Just ["a", "a"],+         Just ["a", "a"],+         Nothing]+    ,+++    testRegex "(([a-c])b*?\\2)*" []+        ["ababbbcbc"]+        [Just ["ababb", "bb", "b"]]+    ,+++    testRegex "(([a-c])b*?\\2){3}" []+        ["ababbbcbc"]+        [Just ["ababbbcbc", "cbc", "c"]]+    ,+    testRegex "((\\3|b)\\2(a)x)+" []+        ["aaaxabaxbaaxbbax"]+        [Just ["bbax", "bbax", "b", "a"]]+    ,+++    testRegex "((\\3|b)\\2(a)){2,}" []+        ["bbaababbabaaaaabbaaaabba"]+        [Just ["bbaaaabba", "bba", "b", "a"]]+    ,+++    testRegex "abc" [caseless]+        ["ABC",+         "XABCY",+         "ABABC",+         "*** Failers",+         "aaxabxbaxbbx",+         "XBC",+         "AXC",+         "ABX"]+        [Just ["ABC"],+         Just ["ABC"],+         Just ["ABC"],+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "ab*c" [caseless]+        ["ABC"]+        [Just ["ABC"]]+    ,+++    testRegex "ab*bc" [caseless]+        ["ABC",+         "ABBC"]+        [Just ["ABC"],+         Just ["ABBC"]]+    ,+++    testRegex "ab*?bc" [caseless]+        ["ABBBBC"]+        [Just ["ABBBBC"]]+    ,+++    testRegex "ab{0,}?bc" [caseless]+        ["ABBBBC"]+        [Just ["ABBBBC"]]+    ,+++    testRegex "ab+?bc" [caseless]+        ["ABBC"]+        [Just ["ABBC"]]+    ,+++    testRegex "ab+bc" [caseless]+        ["*** Failers",+         "ABC",+         "ABQ"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "ab{1,}bc" [caseless]+        []+        []+    ,++    testRegex "ab+bc" [caseless]+        ["ABBBBC"]+        [Just ["ABBBBC"]]+    ,+++    testRegex "ab{1,}?bc" [caseless]+        ["ABBBBC"]+        [Just ["ABBBBC"]]+    ,+++    testRegex "ab{1,3}?bc" [caseless]+        ["ABBBBC"]+        [Just ["ABBBBC"]]+    ,+++    testRegex "ab{3,4}?bc" [caseless]+        ["ABBBBC"]+        [Just ["ABBBBC"]]+    ,+++    testRegex "ab{4,5}?bc" [caseless]+        ["*** Failers",+         "ABQ",+         "ABBBBC"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "ab??bc" [caseless]+        ["ABBC",+         "ABC"]+        [Just ["ABBC"],+         Just ["ABC"]]+    ,+++    testRegex "ab{0,1}?bc" [caseless]+        ["ABC"]+        [Just ["ABC"]]+    ,+++    testRegex "ab??bc" [caseless]+        []+        []+    ,+++    testRegex "ab??c" [caseless]+        ["ABC"]+        [Just ["ABC"]]+    ,++    testRegex "ab{0,1}?c" [caseless]+        ["ABC"]+        [Just ["ABC"]]+    ,+    testRegex "^abc$" [caseless]+        ["ABC",+         "*** Failers",+         "ABBBBC",+         "ABCC"]+        [Just ["ABC"],+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "^abc" [caseless]+        ["ABCC"]+        [Just ["ABC"]]+    ,+++    testRegex "^abc$" [caseless]+        []+        []+    ,+++    testRegex "abc$" [caseless]+        ["AABC"]+        [Just ["ABC"]]+    ,+++    testRegex "^" [caseless]+        ["ABC"]+        [Just [""]]+    ,+++    testRegex "$" [caseless]+        ["ABC"]+        [Just [""]]+    ,+++    testRegex "a.c" [caseless]+        ["ABC",+         "AXC"]+        [Just ["ABC"],+         Just ["AXC"]]+    ,+++    testRegex "a.*?c" [caseless]+        ["AXYZC"]+        [Just ["AXYZC"]]+    ,+++    testRegex "a.*c" [caseless]+        ["*** Failers",+         "AABC",+         "AXYZD"]+        [Nothing,+         Just ["AABC"],+         Nothing]+    ,+++    testRegex "a[bc]d" [caseless]+        ["ABD"]+        [Just ["ABD"]]+    ,++    testRegex "a[b-d]e" [caseless]+        ["ACE",+         "ABC",+         "ABD"]+        [Just ["ACE"],+         Nothing,+         Nothing]+    ,+++    testRegex "a[b-d]" [caseless]+        ["AAC"]+        [Just ["AC"]]+    ,+++    testRegex "a[-b]" [caseless]+        ["A-"]+        [Just ["A-"]]+    ,+++    testRegex "a[b-]" [caseless]+        ["A-"]+        [Just ["A-"]]+    ,+++    testRegex "a]" [caseless]+        ["A]"]+        [Just ["A]"]]+    ,+++    testRegex "a[]]b" [caseless]+        ["A]B"]+        [Just ["A]B"]]+    ,+++    testRegex "a[^bc]d" [caseless]+        ["AED"]+        [Just ["AED"]]+    ,+++    testRegex "a[^-b]c" [caseless]+        ["ADC",+         "ABD",+         "A-C"]+        [Just ["ADC"],+         Nothing,+         Nothing]+    ,+++    testRegex "a[^]b]c" [caseless]+        ["ADC"]+        [Just ["ADC"]]+    ,+++    testRegex "ab|cd" [caseless]+        ["ABC",+         "ABCD"]+        [Just ["AB"],+         Just ["AB"]]++    ,+    testRegex "()ef" [caseless]+        ["DEF"]+        [Just ["EF", ""]]+    ,+++    testRegex "$b" [caseless]+        ["A]C",+         "B"]+        [Nothing,+         Nothing]+    ,+++    testRegex "a\\(b" [caseless]+        ["A(B"]+        [Just ["A(B"]]+    ,+++    testRegex "a\\(*b" [caseless]+        ["AB",+         "A((B"]+        [Just ["AB"],+         Just ["A((B"]]+    ,++++    testRegex "((a))" [caseless]+        ["ABC"]+        [Just ["A", "A", "A"]]+    ,+++    testRegex "(a)b(c)" [caseless]+        ["ABC"]+        [Just ["ABC", "A", "C"]]+    ,+++    testRegex "a+b+c" [caseless]+        ["AABBABC"]+        [Just ["ABC"]]+    ,+++    testRegex "a{1,}b{1,}c" [caseless]+        ["AABBABC"]+        [Just ["ABC"]]+    ,+++    testRegex "a.+?c" [caseless]+        ["ABCABC"]+        [Just ["ABC"]]+    ,++    testRegex "a.*?c" [caseless]+        ["ABCABC"]+        [Just ["ABC"]]+    ,+++    testRegex "a.{0,5}?c" [caseless]+        ["ABCABC"]+        [Just ["ABC"]]+    ,+++    testRegex "(a+|b)*" [caseless]+        ["AB"]+        [Just ["AB", "B"]]+    ,+++    testRegex "(a+|b){0,}" [caseless]+        ["AB"]+        [Just ["AB", "B"]]+    ,+++    testRegex "(a+|b)+" [caseless]+        ["AB"]+        [Just ["AB","B"]]+    ,+++    testRegex "(a+|b){1,}" [caseless]+        ["AB"]+        [Just ["AB", "B"]]+    ,+++    testRegex "(a+|b)?" [caseless]+        ["AB"]+        [Just ["A", "A"]]+    ,+++    testRegex "(a+|b){0,1}" [caseless]+        ["AB"]+        [Just ["A", "A"]]+    ,+++    testRegex "(a+|b){0,1}?" [caseless]+        ["AB"]+        [Just [""]]+    ,+++    testRegex "[^ab]*" [caseless]+        ["CDE"]+        [Just ["CDE"]]+    ,++    testRegex "abc" [caseless]+        []+        []+    ,+++    testRegex "a*" [caseless]+        [""]+        [Just [""]]+    ,+++    testRegex "([abc])*d" [caseless]+        ["ABBBCD"]+        [Just ["ABBBCD", "C"]]+    ,+++    testRegex "([abc])*bcd" [caseless]+        ["ABCD"]+        [Just ["ABCD","A"]]+    ,+++    testRegex "a|b|c|d|e" [caseless]+        ["E"]+        [Just ["E"]]+    ,+++    testRegex "(a|b|c|d|e)f" [caseless]+        ["EF"]+        [Just ["EF", "E"]]+    ,+++    testRegex "abcd*efg" [caseless]+        ["ABCDEFG"]+        [Just ["ABCDEFG"]]+    ,+++    testRegex "ab*" [caseless]+        ["XABYABBBZ",+         "XAYABBBZ"]+        [Just ["AB"],+         Just ["A"]]+    ,+++    testRegex "(ab|cd)e" [caseless]+        ["ABCDE"]+        [Just ["CDE", "CD"]]+    ,+++    testRegex "[abhgefdc]ij" [caseless]+        ["HIJ"]+        [Just ["HIJ"]]+    ,+++    testRegex "^(ab|cd)e" [caseless]+        ["ABCDE"]+        [Nothing]+    ,+++    testRegex "(abc|)ef" [caseless]+        ["ABCDEF"]+        [Just ["EF", ""]]+    ,+++    testRegex "(a|b)c*d" [caseless]+        ["ABCD"]+        [Just ["BCD", "B"]]+    ,+++    testRegex "(ab|ab*)bc" [caseless]+        ["ABC"]+        [Just ["ABC", "A"]]+    ,+++    testRegex "a([bc]*)c*" [caseless]+        ["ABC"]+        [Just ["ABC", "BC"]]+    ,+++    testRegex "a([bc]*)(c*d)" [caseless]+        ["ABCD"]+        [Just ["ABCD","BC","D"]]+    ,+++    testRegex "a([bc]+)(c*d)" [caseless]+        ["ABCD"]+        [Just ["ABCD","BC","D"]]+    ,+++    testRegex "a([bc]*)(c+d)" [caseless]+        ["ABCD"]+        [Just ["ABCD","B","CD"]]+    ,+++    testRegex "a[bcd]*dcdcde" [caseless]+        ["ADCDCDE"]+        [Just ["ADCDCDE"]]+    ,++    testRegex "a[bcd]+dcdcde" [caseless]+        []+        []+    ,++    testRegex "(ab|a)b*c" [caseless]+        ["ABC"]+        [Just ["ABC", "AB"]]+    ,+++    testRegex "((a)(b)c)(d)" [caseless]+        ["ABCD"]+        [Just ["ABCD", "ABC", "A", "B", "D"]]+    ,+++    testRegex "[a-zA-Z_][a-zA-Z0-9_]*" [caseless]+        ["ALPHA"]+        [Just ["ALPHA"]]+    ,+++    testRegex "^a(bc+|b[eh])g|.h$" [caseless]+        ["ABH"]+        [Just ["BH"]]+    ,+++    testRegex "(bc+d$|ef*g.|h?i(j|k))" [caseless]+        ["EFFGZ",+         "IJ",+         "REFFGZ",+         "*** Failers",+         "ADCDCDE",+         "EFFG",+         "BCDD"]+        [Just ["EFFGZ", "EFFGZ"],+         Just ["IJ", "IJ", "J"],+         Just ["EFFGZ", "EFFGZ"],+         Nothing,+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "((((((((((a))))))))))" [caseless]+        ["A"]+        [Just ["A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"]]+    ,+++    testRegex "((((((((((a))))))))))\\10" [caseless]+        ["AA"]+        [Just ["AA", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"]]+    ,+++    testRegex "(((((((((a)))))))))" [caseless]+        ["A"]+        [Just ["A", "A", "A", "A", "A", "A", "A", "A", "A", "A"]]+    ,+++    testRegex "(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))" [caseless]+        ["A"]+        [Just ["A", "A"]]+    ,+++    testRegex "(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))" [caseless]+        ["C"]+        [Just ["C", "C"]]+    ,+++    testRegex "multiple words of text" [caseless]+        ["AA",+         "UH-UH"]+        [Nothing,+         Nothing]+    ,+++    testRegex "multiple words" [caseless]+        ["MULTIPLE WORDS, YEAH"]+        [Just ["MULTIPLE WORDS"]]+    ,+++    testRegex "(.*)c(.*)" [caseless]+        ["ABCDE"]+        [Just ["ABCDE", "AB", "DE"]]+    ,+++    testRegex "\\((.*), (.*)\\)" [caseless]+        ["(A, B)"]+        [Just ["(A, B)", "A", "B"]]+    ,+++    testRegex "[k]" [caseless]+        []+        []+    ,+++    testRegex "abcd" [caseless]+        ["ABCD"]+        [Just ["ABCD"]]+    ,+++    testRegex "a(bc)d" [caseless]+        ["ABCD"]+        [Just ["ABCD", "BC"]]+    ,+++    testRegex "a[-]?c" [caseless]+        ["AC"]+        [Just ["AC"]]+    ,+++    testRegex "(abc)\\1" [caseless]+        ["ABCABC"]+        [Just ["ABCABC", "ABC"]]+    ,+++    testRegex "([a-c]*)\\1" [caseless]+        ["ABCABC"]+        [Just ["ABCABC", "ABC"]]+    ,++    testRegex "a(?!b)." []+        ["abad"]+        [Just ["ad"]]+    ,+++    testRegex "a(?=d)." []+        ["abad"]+        [Just ["ad"]]+    ,+++    testRegex "a(?=c|d)." []+        ["abad"]+        [Just ["ad"]]+    ,+++    testRegex "a(?:b|c|d)(.)" []+        ["ace"]+        [Just ["ace", "e"]]+    ,+++    testRegex "a(?:b|c|d)*(.)" []+        ["ace"]+        [Just ["ace", "e"]]+    ,+++    testRegex "a(?:b|c|d)+?(.)" []+        ["ace",+         "acdbcdbe"]+        [Just ["ace", "e"],+         Just ["acd", "d"]]+    ,+++    testRegex "a(?:b|c|d)+(.)" []+        ["acdbcdbe"]+        [Just ["acdbcdbe", "e"]]+    ,+++    testRegex "a(?:b|c|d){2}(.)" []+        ["acdbcdbe"]+        [Just ["acdb", "b"]]+    ,+++    testRegex "a(?:b|c|d){4,5}(.)" []+        ["acdbcdbe"]+        [Just ["acdbcdb", "b"]]+    ,+++    testRegex "a(?:b|c|d){4,5}?(.)" []+        ["acdbcdbe"]+        [Just ["acdbcd", "d"]]+    ,+++    testRegex "((foo)|(bar))*" []+        ["foobar"]+        [Just ["foobar", "bar", "foo", "bar"]]+    ,+++    testRegex "a(?:b|c|d){6,7}(.)" []+        ["acdbcdbe"]+        [Just ["acdbcdbe", "e"]]+    ,+++    testRegex "a(?:b|c|d){6,7}?(.)" []+        ["acdbcdbe"]+        [Just ["acdbcdbe", "e"]]+    ,+++    testRegex "a(?:b|c|d){5,6}(.)" []+        ["acdbcdbe"]+        [Just ["acdbcdbe", "e"]]+    ,+++    testRegex "a(?:b|c|d){5,6}?(.)" []+        ["acdbcdbe"]+        [Just ["acdbcdb", "b"]]+    ,+++    testRegex "a(?:b|c|d){5,7}(.)" []+        ["acdbcdbe"]+        [Just ["acdbcdbe", "e"]]+    ,+++    testRegex "a(?:b|c|d){5,7}?(.)" []+        ["acdbcdbe"]+        [Just ["acdbcdb", "b"]]+    ,+++    testRegex "a(?:b|(c|e){1,2}?|d)+?(.)" []+        ["ace"]+        [Just ["ace", "c", "e"]]+    ,+++    testRegex "^(.+)?B" []+        ["AB"]+        [Just ["AB", "A"]]+    ,+++    testRegex "^([^a-z])|(\\^)$" []+        ["."]+        [Just [".", "."]]+    ,++    testRegex "^[<>]&" []+        ["<&OUT"]+        [Just ["<&"]]+    ,+++    testRegex "^(a\\1?){4}$" []+        ["aaaaaaaaaa",+         "*** Failers",+         "AB",+         "aaaaaaaaa",+         "aaaaaaaaaaa"]+        [Just ["aaaaaaaaaa", "aaaa"],+         Nothing,+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "^(a(?(1)\\1)){4}$" []+        ["aaaaaaaaaa",+         "*** Failers",+         "aaaaaaaaa",+         "aaaaaaaaaaa"]+        [Just ["aaaaaaaaaa", "aaaa"],+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(?:(f)(o)(o)|(b)(a)(r))*" []+        ["foobar"]+        [Just ["foobar", "f", "o", "o", "b", "a", "r"]]+    ,+++    testRegex "(?<=a)b" []+        ["ab",+         "*** Failers",+         "cb",+         "b"]+        [Just ["b"],+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(?<!c)b" []+        ["ab",+         "b",+         "b"]+        [Just ["b"],+         Just ["b"],+         Just ["b"]]+    ,+++    testRegex "(?:..)*a" []+        ["aba"]+        [Just ["aba"]]+    ,+++    testRegex "(?:..)*?a" []+        ["aba"]+        [Just ["a"]]+    ,+++    testRegex "^(?:b|a(?=(.)))*\\1" []+        ["abc"]+        [Just ["ab", "b"]]+    ,+++    testRegex "^(){3,5}" []+        ["abc"]+        [Just ["", ""]]+    ,+++    testRegex "^(a+)*ax" []+        ["aax"]+        [Just ["aax", "a"]]+    ,+++    testRegex "^((a|b)+)*ax" []+        ["aax"]+        [Just ["aax", "a", "a"]]+    ,+++    testRegex "^((a|bc)+)*ax" []+        ["aax"]+        [Just ["aax", "a", "a"]]+    ,+++    testRegex "(a|x)*ab" []+        ["cab"]+        [Just ["ab"]]+    ,+++    testRegex "(a)*ab" []+        ["cab"]+        [Just ["ab"]]+    ,+++    testRegex "(?:(?i)a)b" []+        ["ab"]+        [Just ["ab"]]+    ,+++    testRegex "((?i)a)b" []+        ["ab"]+        [Just ["ab", "a"]]+    ,+++    testRegex "(?:(?i)a)b" []+        ["Ab"]+        [Just ["Ab"]]+    ,+++    testRegex "((?i)a)b" []+        ["Ab"]+        [Just ["Ab", "A"]]+    ,+++    testRegex "(?:(?i)a)b" []+        ["*** Failers",+         "cb",+         "aB"]+        [Nothing,+         Nothing,+         Nothing]+    ,+    testRegex "((?i)a)b" []+        []+        []+    ,+++    testRegex "(?i:a)b" []+        ["ab"]+        [Just ["ab"]]+    ,+++    testRegex "((?i:a))b" []+        ["ab"]+        [Just ["ab", "a"]]+    ,+++    testRegex "(?i:a)b" []+        ["Ab"]+        [Just ["Ab"]]+    ,+++    testRegex "((?i:a))b" []+        ["Ab"]+        [Just ["Ab", "A"]]+    ,+++    testRegex "(?i:a)b" []+        ["*** Failers",+         "aB",+         "aB"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "((?i:a))b" []+        []+        []+    ,+++    testRegex "(?:(?-i)a)b" [caseless]+        ["ab"]+        [Just ["ab"]]+    ,+++    testRegex "((?-i)a)b" [caseless]+        ["ab"]+        [Just ["ab", "a"]]+    ,+++    testRegex "(?:(?-i)a)b" [caseless]+        ["aB"]+        [Just ["aB"]]+    ,+++    testRegex "((?-i)a)b" [caseless]+        ["aB"]+        [Just ["aB", "a"]]+    ,+++    testRegex "(?:(?-i)a)b" [caseless]+        ["*** Failers",+         "aB",+         "Ab"]+        [Nothing,+         Just ["aB"],+         Nothing]+    ,+++    testRegex "((?-i)a)b" [caseless]+        []+        []+    ,+++    testRegex "(?:(?-i)a)b" [caseless]+        ["aB"]+        [Just ["aB"]]+    ,+++    testRegex "((?-i)a)b" [caseless]+        ["aB"]+        [Just ["aB", "a"]]+    ,+++    testRegex "(?:(?-i)a)b" [caseless]+        ["*** Failers",+         "Ab",+         "AB"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "((?-i)a)b" [caseless]+        []+        []+    ,+++    testRegex "(?-i:a)b" [caseless]+        ["ab"]+        [Just ["ab"]]+    ,+++    testRegex "((?-i:a))b" [caseless]+        ["ab"]+        [Just ["ab", "a"]]+    ,+++    testRegex "(?-i:a)b" [caseless]+        ["aB"]+        [Just ["aB"]]+    ,+++    testRegex "((?-i:a))b" [caseless]+        ["aB"]+        [Just ["aB", "a"]]+    ,+++    testRegex "(?-i:a)b" [caseless]+        ["*** Failers",+         "AB",+         "Ab"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "((?-i:a))b" [caseless]+        []+        []+    ,+++    testRegex "(?-i:a)b" [caseless]+        ["aB"]+        [Just ["aB"]]+    ,+++    testRegex "((?-i:a))b" [caseless]+        ["aB"]+        [Just ["aB", "a"]]+    ,+++    testRegex "(?-i:a)b" [caseless]+        ["*** Failers",+         "Ab",+         "AB"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "((?-i:a))b" [caseless]+        []+        []+    ,+++    testRegex "((?-i:a.))b" [caseless]+        ["*** Failers",+         "AB",+         "a\nB"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "((?s-i:a.))b" [caseless]+        ["a\nB"]+        [Just ["a\nB", "a\n"]]+    ,+++    testRegex "(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))" []+        ["cabbbb"]+        [Just ["cabbbb"]]+    ,++    testRegex "(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))" []+        ["caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"]+        [Just ["caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"]]+    ,+++    testRegex "(ab)\\d\\1" [caseless]+        ["Ab4ab",+         "ab4Ab"]+        [Just ["Ab4ab", "Ab"],+         Just ["ab4Ab", "ab"]]+    ,+++    testRegex "foo\\w*\\d{4}baz" []+        ["foobar1234baz"]+        [Just ["foobar1234baz"]]+    ,+++    testRegex "x(~~)*(?:(?:F)?)?" []+        ["x~~"]+        [Just ["x~~", "~~"]]+    ,+++    testRegex "^a(?#xxx){3}c" []+        ["aaac"]+        [Just ["aaac"]]+    ,+++    testRegex "^a (?#xxx) (?#yyy) {3}c" [extended]+        ["aaac"]+        [Just ["aaac"]]+    ,+++    testRegex "(?<![cd])b" []+        ["*** Failers",+         "B\nB",+         "dbcb"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(?<![cd])[ab]" []+        ["dbaacb"]+        [Just ["a"]]+    ,+++    testRegex "(?<!(c|d))b" []+        []+        []+    ,+++    testRegex "(?<!(c|d))[ab]" []+        ["dbaacb"]+        [Just ["a"]]+    ,+++    testRegex "(?<!cd)[ab]" []+        ["cdaccb"]+        [Just ["b"]]+    ,++{-+    testRegex "^(?:a?b?)*$" []+        ["a",+         "ab",+         "aaa   ",+         "*** Failers",+         "dbcb",+         "a--",+         "aa-- "]+        [Just ["a"],+         Just ["ab"],+         Just ["aaa"],+         Nothing,+         Nothing,+         Nothing,+         Nothing]+    ,+    -}+++    testRegex "((?s)^a(.))((?m)^b$)" []+        ["a\nb\nc\n"]+        [Just ["a\nb", "a\n", "\n", "b"]]+    ,+++    testRegex "((?m)^b$)" []+        ["a\nb\nc\n"]+        [Just ["b", "b"]]+    ,+++    testRegex "(?m)^b" []+        ["a\nb\n"]+        [Just ["b"]]+    ,+++    testRegex "(?m)^(b)" []+        ["a\nb\n"]+        [Just ["b", "b"]]+    ,+++    testRegex "((?m)^b)" []+        ["a\nb\n"]+        [Just ["b", "b"]]+    ,+++    testRegex "\\n((?m)^b)" []+        ["a\nb\n"]+        [Just ["\nb", "b"]]+    ,+++    testRegex "((?s).)c(?!.)" []+        ["a\nb\nc\n",+         "a\nb\nc\n"]+        [Just ["\nc", "\n"],+         Just ["\nc", "\n"]]+    ,+++    testRegex "((?s)b.)c(?!.)" []+        ["a\nb\nc\n",+         "a\nb\nc\n"]+        [Just ["b\nc", "b\n"],+         Just ["b\nc", "b\n"]]+    ,+++    testRegex "^b" []+        []+        []+    ,+++    testRegex "()^b" []+        ["*** Failers",+         "a\nb\nc\n",+         "a\nb\nc\n"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "((?m)^b)" []+        ["a\nb\nc\n"]+        [Just ["b", "b"]]+    ,+++    testRegex "(?(1)a|b)" []+        []+        []+    ,+++    testRegex "(?(1)b|a)" []+        ["a"]+        [Just ["a"]]+    ,+++    testRegex "(x)?(?(1)a|b)" []+        ["*** Failers",+         "a",+         "a"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(x)?(?(1)b|a)" []+        ["a"]+        [Just ["a"]]+    ,+++    testRegex "()?(?(1)b|a)" []+        ["a"]+        [Just ["a"]]+    ,+++    testRegex "()(?(1)b|a)" []+        []+        []+    ,+++    testRegex "()?(?(1)a|b)" []+        ["a"]+        [Just ["a", ""]]+    ,+++    testRegex "^(\\()?blah(?(1)(\\)))$" []+        ["(blah)",+         "blah",+         "a",+         "blah)",+         "(blah"]+        [Just ["(blah)", "(", ")"],+         Just ["blah"],+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "^(\\(+)?blah(?(1)(\\)))$" []+        ["(blah)",+         "blah",+         "*** Failers",+         "blah)",+         "(blah"]+        [Just ["(blah)", "(", ")"], +         Just ["blah"],+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(?(?!a)a|b)" []+        []+        []+    ,+++    testRegex "(?(?!a)b|a)" []+        ["a"]+        [Just ["a"]]+    ,+++    testRegex "(?(?=a)b|a)" []+        ["*** Failers",+         "a",+         "a"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(?(?=a)a|b)" []+        ["a"]+        [Just ["a"]]+    ,+++    testRegex "(?=(a+?))(\\1ab)" []+        ["aaab"]+        [Just ["aab", "a", "aab"]]+    ,+++    testRegex "^(?=(a+?))\\1ab" []+        []+        []+    ,+++    testRegex "(\\w+:)+" []+        ["one:"]+        [Just ["one:", "one:"]]+    ,+++    testRegex "$(?<=^(a))" []+        ["a"]+        [Just ["", "a"]]+    ,+++    testRegex "(?=(a+?))(\\1ab)" []+        ["aaab"]+        [Just ["aab", "a", "aab"]]+    ,+++    testRegex "^(?=(a+?))\\1ab" []+        ["*** Failers",+         "aaab",+         "aaab"]+        [Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "([\\w:]+::)?(\\w+)$" []+        ["abcd",+         "xy:z:::abcd"]+        [Just ["abcd", "", "abcd"],+         Just ["xy:z:::abcd", "xy:z:::", "abcd"]]+    ,+++    testRegex "^[^bcd]*(c+)" []+        ["aexycd"]+        [Just ["aexyc", "c"]]+    ,+++    testRegex "(a*)b+" []+        ["caab"]+        [Just ["aab", "aa"]]+    ,+++    testRegex "([\\w:]+::)?(\\w+)$" []+        ["abcd",+         "xy:z:::abcd",+         "*** Failers",+         "abcd:",+         "abcd:"]+        [Just ["abcd", "", "abcd"],+         Just ["xy:z:::abcd", "xy:z:::", "abcd"],+         Just ["Failers", "", "Failers"],+         Nothing,+         Nothing]+    ,+++    testRegex "^[^bcd]*(c+)" []+        ["aexycd"]+        [Just ["aexyc", "c"]]+    ,+++    testRegex "(>a+)ab" []+        []+        []+    ,+++    testRegex "(?>a+)b" []+        ["aaab"]+        [Just ["aaab"]]+    ,+++    testRegex "([[:]+)" []+        ["a:[b]:"]+        [Just [":[", ":["]]++    ,+    testRegex "([[=]+)" []+        ["a=[b]="]+        [Just ["=[", "=["]]+    ,+++    testRegex "([[.]+)" []+        ["a.[b]."]+        [Just [".[", ".["]]+    ,+++    testRegex "((?>a+)b)" []+        ["aaab"]+        [Just ["aaab", "aaab"]]+    ,+++    testRegex "(?>(a+))b" []+        ["aaab"]+        [Just ["aaab", "aaa"]]+    ,+++    testRegex "((?>[^()]+)|\\([^()]*\\))+" []+        ["((abc(ade)ufh()()x"]+        [Just ["abc(ade)ufh()()x", "x"]]+    ,+++    testRegex "a\\Z" []+        ["aaab",+         "a\nb\n"]+        [Nothing,+         Nothing]+    ,+++    testRegex "b\\Z" []+        ["a\nb\n"]+        [Just ["b"]]+    ,+++    testRegex "b\\z" []+        []+        []+    ,+++    testRegex "b\\Z" []+        ["a\\nb"]+        [Just ["b"]]+    ,++    testRegex "(?>.*)(?<=(abcd|wxyz))" []+        ["alphabetabcd",+         "endingwxyz",+         "*** Failers",+         "a rather long string that doesn't end with one of them"]+        [Just ["alphabetabcd", "abcd"],+         Just ["endingwxyz", "wxyz"],+         Nothing,+         Nothing]+    ,+++    testRegex "word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword" []+        ["word cat dog elephant mussel cow horse canary baboon snake shark otherword",+         "word cat dog elephant mussel cow horse canary baboon snake shark"+         ]+        [Just ["word cat dog elephant mussel cow horse canary baboon snake shark otherword"],+         Nothing]+    ,++    testRegex "((Z)+|A)*" []+        ["ZABCDEFG"]+        [Just ["ZA", "A", "Z"]]+    ,+++    testRegex "(Z()|A)*" []+        ["ZABCDEFG"]+        [Just ["ZA", "A", ""]]+    ,+++    testRegex "(Z(())|A)*" []+        ["ZABCDEFG"]+        [Just ["ZA", "A", "", ""]]+    ,++    testRegex "((?>Z)+|A)*" []+        ["ZABCDEFG"]+        [Just ["ZA", "A"]]+    ,+++    testRegex "((?>)+|A)*" []+        ["ZABCDEFG"]+        [Just ["", ""]]+    ,++++    testRegex "^[a-\\d]" []+        ["abcde",+         "-things",+         "0digit",+         "*** Failers",+         "bcdef    "]+        [Just ["a"],+         Just ["-"],+         Just ["0"],+         Nothing,+         Nothing]+    ,++    testRegex "\\Qabc\\$xyz\\E" []+        ["abc\\$xyz"]+        [Just ["abc\\$xyz"]]+    ,+    testRegex "\\Qabc\\E\\$\\Qxyz\\E" []+        ["abc$xyz"]+        [Just ["abc$xyz"]]+    ,+    testRegex "\\Gabc" []+        ["abc",+         "*** Failers",+         "xyzabc  "]+        [Just ["abc"],+         Nothing,+         Nothing]+    ,++    testRegex "a(?x: b c )d" []+        ["XabcdY",+         "*** Failers ",+         "Xa b c d Y "]+        [Just ["abcd"],+         Nothing,+         Nothing]+    ,+++    testRegex "((?x)x y z | a b c)" []+        ["XabcY",+         "AxyzB "]+        [Just ["abc", "abc"],+         Just ["xyz", "xyz"]]+    ,+++    testRegex "(?i)AB(?-i)C" []+        ["XabCY",+         "*** Failers",+         "XabcY  "]+        [Just ["abC"],+         Nothing,+         Nothing]+    ,+++    testRegex "((?i)AB(?-i)C|D)E" []+        ["abCE",+         "DE",+         "*** Failers",+         "abcE",+         "abCe  ",+         "dE",+         "De    "]+        [Just ["abCE", "abC"],+         Just ["DE", "D"],+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(.*)\\d+\\1" []+        ["abc123abc",+         "abc123bc "]+        [Just ["abc123abc", "abc"],+         Just ["bc123bc", "bc"]]+    ,++    testRegex "[z\\Qa-d]\\E]" []+        ["z",+         "a",+         "-",+         "d",+         "] ",+         "*** Failers",+         "b     "]+        [Just ["z"],+         Just ["a"],+         Just ["-"],+         Just ["d"],+         Just ["]"],+         Just ["a"],+         Nothing]++    , testRegex "(?<=Z)X." []+        ["\\x84XAZXB"]+        [Just ["XB"]]+    ,++    testRegex "ab cd (?x) de fg" []+        ["ab cd defg"]+        [Just ["ab cd defg"]]+    ,+++    testRegex "ab cd(?x) de fg" []+        ["ab cddefg",+         "** Failers ",+         "abcddefg"]+        [Just ["ab cddefg"],+         Nothing,+         Nothing]+    ,+++    testRegex "(?<![^f]oo)(bar)" []+        ["foobarX ",+         "** Failers ",+         "boobarX"]+        [Just ["bar", "bar"],+         Nothing,+         Nothing]+    ,+++    testRegex "(?<![^f])X" []+        ["offX",+         "** Failers",+         "onyX  "]+        [Just ["X"],+         Nothing,+         Nothing]+    ,+++    testRegex "(?<=[^f])X" []+        ["onyX",+         "** Failers",+         "offX "]+        [Just ["X"],+         Nothing,+         Nothing]+    ,++++    testRegex "(?:(?(1)a|b)(X))+" []+        ["bXaX"]+        [Just ["bXaX", "X"]]+    ,++    testRegex "(?:(?(1)\\1a|b)(X|Y))+" []+        ["bXXaYYaY",+         "bXYaXXaX  "]+        [Just ["bXXaYYaY", "Y"],+         Just ["bX", "X"]]+    ,+++    testRegex "()()()()()()()()()(?:(?(10)\\10a|b)(X|Y))+" []+        ["bXXaYYaY"]+        [Just ["bX", "", "", "", "", "", "", "", "", "", "X"]]+    ,+++    testRegex "[[,abc,]+]" []+        ["abc]",+         "a,b]",+         "[a,b,c]  "]+        [Just ["abc]"],+         Just ["a,b]"],+         Just ["[a,b,c]"]]+    ,+++++    testRegex "a*b*\\w" []+        ["aaabbbb",+         "aaaa",+         "a"]+        [Just ["aaabbbb"],+         Just ["aaaa"],+         Just ["a"]]+    ,+++    testRegex "a*b?\\w" []+        ["aaabbbb",+         "aaaa",+         "a"]+        [Just ["aaabb"],+         Just ["aaaa"],+         Just ["a"]]+    ,+++    testRegex "a*b{0,4}\\w" []+        ["aaabbbb",+         "aaaa",+         "a"]+        [Just ["aaabbbb"],+         Just ["aaaa"],+         Just ["a"]]+    ,+++    testRegex "(?=(\\w+))\\1:" []+        ["abcd:"]+        [Just ["abcd:", "abcd"]]+    ,+++    testRegex "^(?=(\\w+))\\1:" []+        ["abcd:"]+        [Just ["abcd:", "abcd"]]+    ,++++    testRegex "^[a\\E\\E-\\Ec]" []+        ["b",+         "** Failers",+         "-",+         "E    "]+        [Just ["b"],+         Nothing,+         Nothing,+         Nothing]+    ,+++    testRegex "(a){0,3}(?(1)b|(c|))*D" []+        ["abbD",+         "ccccD",+         "D  "]+        [Just ["abbD", "a"],+         Just ["ccccD", "", ""],+         Just ["D", "", ""]]+    ,+++    -- WARNING: at around this point, the file starts segfaulting ghci....+    testRegex "(a|)*\\d" []+        ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",+         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]+        [Nothing,+         Just ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4", ""]]++    ,+    testRegex "(?>a|)*\\d" []+        ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",+         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]+        [Nothing,+         Just ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]]++    ,++    testRegex "(?=(\\w+))\\1:" []+        ["abcd:"]+        [Just ["abcd:", "abcd"]]+    ,+++    testRegex "^(?=(\\w+))\\1:" []+        ["abcd:"]+        [Just ["abcd:", "abcd"]]+    ,++++    testRegex "^[a\\E\\E-\\Ec]" []+        ["b",+         "** Failers",+         "-",+         "E    "]+        [Just ["b"],+         Nothing,+         Nothing,+         Nothing]+    ,++++++++    testRegex "(a){0,3}(?(1)b|(c|))*D" []+        ["abbD",+         "ccccD",+         "D  "]+        [Just ["abbD", "a"],+         Just ["ccccD", "", ""],+         Just ["D", "", ""]]+    ,+++    testRegex "(a|)*\\d" []+        ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",+         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]+        [Nothing,+         Just ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4", ""]]+    ,+++    testRegex "(?>a|)*\\d" []+        ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",+         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]+        [Nothing,+         Just ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]]+    ,++    testRegex "( (A | (?(1)0|) )*   )" [extended]+        ["abcd"]+        [Just ["", "", ""]]++    ,+    testRegex "^[\\w]+" []+        ["*** Failers",+         "\201cole"]+        [Nothing,+         Nothing]++++    ,+    testRegex "^[\\w]+" []+        ["*** Failers",+         "\201cole"]+        [Nothing,+         Nothing]++{-+    ,++    testRegex "(a.b(?s)c.d|x.y)p.q" []+        ["a+bc+dp+q",+         "a+bc\ndp+q",+         "x\nyp+q ",+         "a\nbc\ndp+q",+         "a+bc\ndp\nq",+         "x\nyp\nq "+         ]+        [Just ["a+bc+dp+q"],+         Just ["a+bc\ndp+q"],+         Just ["x\nyp+q"],+         Nothing,+         Nothing,+         Nothing+         ]+         -}++    ,+    testRegex "a\\d\\z" []+        ["ba0",+         "*** Failers",+         "ba0\n",+         "ba0\ncd   "]+        [Just ["a0"],+         Nothing,+         Nothing,+         Nothing]++    ,+    testRegex "a\\d\\Z" []+        ["ba0",+         "ba0\n",+         "ba0\ncd   "]+        [Just ["a0"],+         Just ["a0"],+         Nothing]++    ,+    testRegex "a\\d$" []+        ["ba0",+         "ba0\n",+         "*** Failers",+         "ba0\ncd   "]+        [Just ["a0"],+         Just ["a0"],+         Nothing,+         Nothing]+    ,+    testRegex "a+" []+        ["aaaa"]+        [Just ["aaaa"]]++++    ,+    testRegex "^\\d{2,3}X" []+        ["12X",+         "123X",+         "*** Failers",+         "X",+         "1X",+         "1234X     "]+        [Just ["12X"],+         Just ["123X"],+         Nothing,+         Nothing,+         Nothing,+         Nothing]+++    ,+    testRegex "^[abcd]\\d" []+        ["a45",+         "b93",+         "c99z",+         "d04",+         "*** Failers",+         "e45",+         "abcd      ",+         "abcd1234",+         "1234  "]+        [Just ["a4"],+         Just ["b9"],+         Just ["c9"],+         Just ["d0"],+         Nothing,+         Nothing,+         Nothing,+         Nothing,+         Nothing]+++{-+    ,+    testRegex "^(a*\\w|ab)=(a*\\w|ab)" []+        ["ab=ab"]+        [Just ["ab=ab", "ab"]]+        -}+++    ,+    testRegex "^(a*\\w|ab)=(?1)" []+        ["ab=ab"]+        [Just ["ab=ab", "ab"]]+++{-+    ,+    testRegex "^([^()]|\\((?1)*\\))*$" []+        ["abc",+         "a(b)c",+         "a(b(c))d  ",+         "*** Failers)",+         "a(b(c)d  "]+        [Just ["abc"],+         Just ["a(b)c"],+         Just ["a(b(c))d"],+         Nothing,+         Nothing]++    ,+    testRegex "^>abc>([^()]|\\((?1)*\\))*<xyz<$" []+        [">abc>123<xyz<",+         ">abc>1(2)3<xyz<",+         ">abc>(1(2)3)<xyz<"]+        [Just [">abc>123<xyz<"],+         Just [">abc>1(2)3<xyz<"],+         Just [">abc>(1(2)3)<xyz<"]]++-}++    ,+    testRegex "^(?>a*)\\d" []+        ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876",+         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]+        [Just ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9"],+         Nothing]++++++    ,+    testRegex "(?<=abc|xy)123" []+        ["abc12345",+         "wxy123z",+         "*** Failers",+         "123abc"]+        [Just ["123"],+         Just ["123"],+         Nothing,+         Nothing]+++    ,+    testRegex "(?<!abc|xy)123" []+        ["123abc",+         "mno123456 ",+         "*** Failers",+         "abc12345",+         "wxy123z"]+        [Just ["123"],+         Just ["123"],+         Nothing,+         Nothing,+         Nothing]++    ,+    testRegex "abc(?C1)xyz" []+        ["abcxyz",+         "123abcxyz999 "]+        [ Just ["abcxyz"],+         Just ["abcxyz"]]++++++{-+    ,+    testRegex "\\Gabc" []+        ["abcdef",+         "defabcxyz\\>3 ",+         "defabcxyz"]+        [Just ["abc"],+         Just ["abc"],+         Nothing]+         -}++    ,++    testRegex "[\\xFF]" []+        [">\xff<"]+        [Just ["\xff"]]++    ,+    testRegex "[^\\xFF]" []+        ["XYZ"]+        [Just ["X"]]+++    ,+    testRegex "^\\pN{2,3}X" []+        ["12X",+         "123X",+         "*** Failers",+         "X",+         "1X",+         "1234X     "]+        [Just ["12X"],+         Just ["123X"],+         Nothing,+         Nothing,+         Nothing,+         Nothing]+++ ]
+ tests/failure1.hs view
@@ -0,0 +1,5 @@+import Text.Regex.PCRE.Light.Char8++main = do+    let r = compile "(a|)*\\d" []+    print (match r "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" [])
− tests/testdata/regex1.tests
@@ -1,4838 +0,0 @@---testRegex "^(a){1,}" []-    ["bcd",-     "abc",-     "aab",-     "aaa",-     "aaaaaaaa    "]-    [Nothing,-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 0: aaa"],-     Just [" 1: a"],-     Just [" 0: aaaaaaaa"],-     Just [" 1: a"]]-,------------testRegex ".*$" [ERROR]-    ["borfle\\nbib.gif\\nno\\n"]-    [Just [" 0: borfle\\x0abib.gif\\x0ano\\x0a"]]-,---testRegex ".*$" [ERROR]-    ["borfle\\nbib.gif\\nno\\n",-     "",-     "/(.*X|^B)/",-     "abcde\\n1234Xyz",-     "BarFoo ",-     "*** Failers",-     "abcde\\nBar  "]-    [Just [" 0: borfle\\x0abib.gif\\x0ano\\x0a"],-     Just ["/(.*X|^B)/"],-     Just [" 0: 1234X"],-     Just [" 1: 1234X"],-     Just [" 0: B"],-     Just [" 1: B"],-     Nothing,-     Nothing]-,---testRegex "(.*X|^B)" [ERROR]-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "abcde\\nBar  "]-    [Just [" 0: 1234X"],-     Just [" 1: 1234X"],-     Just [" 0: B"],-     Just [" 1: B"],-     Just [" 0: B"],-     Just [" 1: B"]]-,---testRegex "(.*X|^B)" [ERROR]-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "*** Failers",-     "abcde\\nBar  "]-    [Just [" 0: abcde\\x0a1234X"],-     Just [" 1: abcde\\x0a1234X"],-     Just [" 0: B"],-     Just [" 1: B"],-     Nothing,-     Nothing]-,---testRegex "(.*X|^B)" [ERROR]-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "abcde\\nBar  "]-    [Just [" 0: abcde\\x0a1234X"],-     Just [" 1: abcde\\x0a1234X"],-     Just [" 0: B"],-     Just [" 1: B"],-     Just [" 0: B"],-     Just [" 1: B"]]-,---testRegex "(?s)(.*X|^B)" []-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "*** Failers ",-     "abcde\\nBar  "]-    [Just [" 0: abcde\\x0a1234X"],-     Just [" 1: abcde\\x0a1234X"],-     Just [" 0: B"],-     Just [" 1: B"],-     Nothing,-     Nothing]-,---testRegex "(?s:.*X|^B)" []-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "*** Failers ",-     "abcde\\nBar  "]-    [Just [" 0: abcde\\x0a1234X"],-     Just [" 0: B"],-     Nothing,-     Nothing]-,---testRegex "^.*B" []-    ["**** Failers",-     "abc\\nB",-     "",-     "/(?s)^.*B/",-     "abc\\nB"]-    [Nothing,-     Nothing,-     Just ["/(?s)^.*B/"],-     Just [" 0: abc\\x0aB"]]-,---testRegex "(?m)^.*B" []-    ["abc\\nB",-     "",-     "/(?ms)^.*B/",-     "abc\\nB"]-    [Just [" 0: B"],-     Just ["/(?ms)^.*B/"],-     Just [" 0: abc\\x0aB"]]-,-----testRegex "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" []-    ["123456654321",-     "",-     "/^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d/",-     "123456654321 "]-    [Just [" 0: 123456654321"],-     Just ["/^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d/"],-     Just [" 0: 123456654321"]]-,---testRegex "^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d]" []-    ["123456654321",-     "",-     "/^[abc]{12}/",-     "abcabcabcabc",-     "",-     "/^[a-c]{12}/",-     "abcabcabcabc",-     "",-     "/^(a|b|c){12}/",-     "abcabcabcabc "]-    [Just [" 0: 123456654321"],-     Just ["/^[abc]{12}/"],-     Just [" 0: abcabcabcabc"],-     Just ["/^[a-c]{12}/"],-     Just [" 0: abcabcabcabc"],-     Just ["/^(a|b|c){12}/"],-     Just [" 0: abcabcabcabc"],-     Just [" 1: c"]]-,------testRegex "" [ERROR]-    ["abc"]-    [Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "]]-,---testRegex "<tr([\\w\\W\\s\\d][^<>]{0,})><TD([\\w\\W\\s\\d][^<>]{0,})>([\\d]{0,}\\.)(.*)((<BR>([\\w\\W\\s\\d][^<>]{0,})|[\\s]{0,}))<\\/a><\\/TD><TD([\\w\\W\\s\\d][^<>]{0,})>([\\w\\W\\s\\d][^<>]{0,})<\\/TD><TD([\\w\\W\\s\\d][^<>]{0,})>([\\w\\W\\s\\d][^<>]{0,})<\\/TD><\\/TR>" [ERROR]-    ["<TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>"]-    [Just [" 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>"],-     Just [" 1:  BGCOLOR='#DBE9E9'"],-     Just [" 2:  align=left valign=top"],-     Just [" 3: 43."],-     Just [" 4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)"],-     Just [" 5: "],-     Just [" 6: "],-     Just [" 7: <unset>"],-     Just [" 8:  align=left valign=top"],-     Just [" 9: Lega lstaff.com"],-     Just ["10:  align=left valign=top"],-     Just ["11: CA - Statewide"]]-,---testRegex "a[^a]b" []-    ["acb",-     "a\\nb",-     "",-     "/a.b/",-     "acb",-     "*** Failers ",-     "a\\nb   ",-     "",-     "/a[^a]b/s",-     "acb",-     "a\\nb  ",-     "",-     "/a.b/s",-     "acb",-     "a\\nb  "]-    [Just [" 0: acb"],-     Just [" 0: a\\x0ab"],-     Just ["/a.b/"],-     Just [" 0: acb"],-     Nothing,-     Nothing,-     Just ["/a[^a]b/s"],-     Just [" 0: acb"],-     Just [" 0: a\\x0ab"],-     Just ["/a.b/s"],-     Just [" 0: acb"],-     Just [" 0: a\\x0ab"]]-,----testRegex "^(b+|a){1,2}?c" []-    ["bac",-     "bbac",-     "bbbac",-     "bbbbac",-     "bbbbbac ",-     "",-     "/(?!\\A)x/m",-     "x\\nb\\n",-     "a\\bx\\n  ",-     "",-     "/\\x0{ab}/",-     "\\0{ab} "]-    [Just [" 0: bac"],-     Just [" 1: a"],-     Just [" 0: bbac"],-     Just [" 1: a"],-     Just [" 0: bbbac"],-     Just [" 1: a"],-     Just [" 0: bbbbac"],-     Just [" 1: a"],-     Just [" 0: bbbbbac"],-     Just [" 1: a"],-     Just ["/(?!\\A)x/m"],-     Nothing,-     Just [" 0: x"],-     Just ["/\\x0{ab}/"],-     Just [" 0: \\x00{ab}"]]-,-----testRegex "(AB)*\\1" []-    ["ABABAB",-     "",-     "/(?<!bar)foo/",-     "foo",-     "catfood",-     "arfootle",-     "rfoosh",-     "*** Failers",-     "barfoo",-     "towbarfoo"]-    [Just [" 0: ABABAB"],-     Just [" 1: AB"],-     Just ["/(?<!bar)foo/"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "\\w{3}(?<!bar)foo" []-    ["catfood",-     "*** Failers",-     "foo",-     "barfoo",-     "towbarfoo"]-    [Just [" 0: catfoo"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?<=(foo)a)bar" []-    ["fooabar",-     "*** Failers",-     "bar",-     "foobbar",-     "",-     "/\\Aabc\\z/m",-     "abc",-     "*** Failers",-     "abc\\n   ",-     "qqq\\nabc",-     "abc\\nzzz",-     "qqq\\nabc\\nzzz"]-    [Just [" 0: bar"],-     Just [" 1: foo"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/\\Aabc\\z/m"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?>.*/)foo" [ERROR]-    ["/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/"]-    [Nothing]-,---testRegex "(?>.*/)foo" [ERROR]-    ["/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo"]-    [Just [" 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo"]]-,---testRegex "(?>(\\.\\d\\d[1-9]?))\\d+" []-    ["1.230003938",-     "1.875000282",-     "*** Failers ",-     "1.235 "]-    [Just [" 0: .230003938"],-     Just [" 1: .23"],-     Just [" 0: .875000282"],-     Just [" 1: .875"],-     Nothing,-     Nothing]-,---testRegex "^((?>\\w+)|(?>\\s+))*$" []-    ["now is the time for all good men to come to the aid of the party",-     "*** Failers",-     "this is not a line with only words and spaces!",-     "",-     "/(\\d+)(\\w)/",-     "12345a",-     "12345+ "]-    [Just [" 0: now is the time for all good men to come to the aid of the party"],-     Just [" 1: party"],-     Nothing,-     Nothing,-     Just ["/(\\d+)(\\w)/"],-     Just [" 0: 12345a"],-     Just [" 1: 12345"],-     Just [" 2: a"],-     Just [" 0: 12345"],-     Just [" 1: 1234"],-     Just [" 2: 5"]]-,---testRegex "((?>\\d+))(\\w)" []-    ["12345a",-     "*** Failers",-     "12345+ "]-    [Just [" 0: 12345a"],-     Just [" 1: 12345"],-     Just [" 2: a"],-     Nothing,-     Nothing]-,---testRegex "(?>a+)b" []-    ["aaab"]-    [Just [" 0: aaab"]]-,---testRegex "((?>a+)b)" []-    ["aaab"]-    [Just [" 0: aaab"],-     Just [" 1: aaab"]]-,---testRegex "(?>(a+))b" []-    ["aaab"]-    [Just [" 0: aaab"],-     Just [" 1: aaa"]]-,---testRegex "(?>b)+" []-    ["aaabbbccc"]-    [Just [" 0: bbb"]]-,---testRegex "(?>a+|b+|c+)*c" []-    ["aaabbbbccccd"]-    [Just [" 0: aaabbbbc"]]-,---testRegex "((?>[^()]+)|\\([^()]*\\))+" []-    ["((abc(ade)ufh()()x",-     "",-     "/\\(((?>[^()]+)|\\([^()]+\\))+\\)/ ",-     "(abc)",-     "(abc(def)xyz)",-     "*** Failers",-     "((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   "]-    [Just [" 0: abc(ade)ufh()()x"],-     Just [" 1: x"],-     Just ["/\\(((?>[^()]+)|\\([^()]+\\))+\\)/ "],-     Just [" 0: (abc)"],-     Just [" 1: abc"],-     Just [" 0: (abc(def)xyz)"],-     Just [" 1: xyz"],-     Nothing,-     Nothing]-,---testRegex "a(?-i)b" [caseless]-    ["ab",-     "Ab",-     "*** Failers ",-     "aB",-     "AB",-     "",-     "/(a (?x)b c)d e/",-     "a bcd e",-     "*** Failers",-     "a b cd e",-     "abcd e   ",-     "a bcde ",-     "",-     "/(a b(?x)c d (?-x)e f)/",-     "a bcde f",-     "*** Failers",-     "abcdef  "]-    [Just [" 0: ab"],-     Just [" 0: Ab"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(a (?x)b c)d e/"],-     Just [" 0: a bcd e"],-     Just [" 1: a bc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/(a b(?x)c d (?-x)e f)/"],-     Just [" 0: a bcde f"],-     Just [" 1: a bcde f"],-     Nothing,-     Nothing]-,---testRegex "(a(?i)b)c" []-    ["abc",-     "aBc",-     "*** Failers",-     "abC",-     "aBC  ",-     "Abc",-     "ABc",-     "ABC",-     "AbC",-     "",-     "/a(?i:b)c/",-     "abc",-     "aBc",-     "*** Failers ",-     "ABC",-     "abC",-     "aBC",-     "",-     "/a(?i:b)*c/",-     "aBc",-     "aBBc",-     "*** Failers ",-     "aBC",-     "aBBC",-     "",-     "/a(?=b(?i)c)\\w\\wd/",-     "abcd",-     "abCd",-     "*** Failers",-     "aBCd",-     "abcD     ",-     "",-     "/(?s-i:more.*than).*million/i",-     "more than million",-     "more than MILLION",-     "more \\n than Million ",-     "*** Failers",-     "MORE THAN MILLION    ",-     "more \\n than \\n million "]-    [Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 0: aBc"],-     Just [" 1: aB"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/a(?i:b)c/"],-     Just [" 0: abc"],-     Just [" 0: aBc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/a(?i:b)*c/"],-     Just [" 0: aBc"],-     Just [" 0: aBBc"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/a(?=b(?i)c)\\w\\wd/"],-     Just [" 0: abcd"],-     Just [" 0: abCd"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?s-i:more.*than).*million/i"],-     Just [" 0: more than million"],-     Just [" 0: more than MILLION"],-     Just [" 0: more \\x0a than Million"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?:(?s-i)more.*than).*million" [caseless]-    ["more than million",-     "more than MILLION",-     "more \\n than Million ",-     "*** Failers",-     "MORE THAN MILLION    ",-     "more \\n than \\n million ",-     "",-     "/(?>a(?i)b+)+c/ ",-     "abc",-     "aBbc",-     "aBBc ",-     "*** Failers",-     "Abc",-     "abAb    ",-     "abbC ",-     "",-     "/(?=a(?i)b)\\w\\wc/",-     "abc",-     "aBc",-     "*** Failers",-     "Ab ",-     "abC",-     "aBC     ",-     "",-     "/(?<=a(?i)b)(\\w\\w)c/",-     "abxxc",-     "aBxxc",-     "*** Failers",-     "Abxxc",-     "ABxxc",-     "abxxC      "]-    [Just [" 0: more than million"],-     Just [" 0: more than MILLION"],-     Just [" 0: more \\x0a than Million"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?>a(?i)b+)+c/ "],-     Just [" 0: abc"],-     Just [" 0: aBbc"],-     Just [" 0: aBBc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?=a(?i)b)\\w\\wc/"],-     Just [" 0: abc"],-     Just [" 0: aBc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?<=a(?i)b)(\\w\\w)c/"],-     Just [" 0: xxc"],-     Just [" 1: xx"],-     Just [" 0: xxc"],-     Just [" 1: xx"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?:(a)|b)(?(1)A|B)" []-    ["aA",-     "bB",-     "*** Failers",-     "aB",-     "bA    "]-    [Just [" 0: aA"],-     Just [" 1: a"],-     Just [" 0: bB"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^(a)?(?(1)a|b)+$" []-    ["aa",-     "b",-     "bb  ",-     "*** Failers",-     "ab   "]-    [Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 0: b"],-     Just [" 0: bb"],-     Nothing,-     Nothing]-,---testRegex "^(?(?=abc)\\w{3}:|\\d\\d)$" []-    ["abc:",-     "12",-     "*** Failers",-     "123",-     "xyz    "]-    [Just [" 0: abc:"],-     Just [" 0: 12"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^(?(?!abc)\\d\\d|\\w{3}:)$" []-    ["abc:",-     "12",-     "*** Failers",-     "123",-     "xyz    ",-     "",-     "/(?(?<=foo)bar|cat)/",-     "foobar",-     "cat",-     "fcat",-     "focat   ",-     "*** Failers",-     "foocat  "]-    [Just [" 0: abc:"],-     Just [" 0: 12"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?(?<=foo)bar|cat)/"],-     Just [" 0: bar"],-     Just [" 0: cat"],-     Just [" 0: cat"],-     Just [" 0: cat"],-     Nothing,-     Nothing]-,---testRegex "(?(?<!foo)cat|bar)" []-    ["foobar",-     "cat",-     "fcat",-     "focat   ",-     "*** Failers",-     "foocat  "]-    [Just [" 0: bar"],-     Just [" 0: cat"],-     Just [" 0: cat"],-     Just [" 0: cat"],-     Nothing,-     Nothing]-,---testRegex "( \\( )? [^()]+ (?(1) \\) |) " [ERROR]-    ["abcd",-     "(abcd)",-     "the quick (abcd) fox",-     "(abcd   "]-    [Just [" 0: abcd"],-     Just [" 0: (abcd)"],-     Just [" 1: ("],-     Just [" 0: the quick "],-     Just [" 0: abcd"]]-,---testRegex "( \\( )? [^()]+ (?(1) \\) ) " [ERROR]-    ["abcd",-     "(abcd)",-     "the quick (abcd) fox",-     "(abcd   "]-    [Just [" 0: abcd"],-     Just [" 0: (abcd)"],-     Just [" 1: ("],-     Just [" 0: the quick "],-     Just [" 0: abcd"]]-,---testRegex "^(?(2)a|(1)(2))+$" []-    ["12",-     "12a",-     "12aa",-     "*** Failers",-     "1234    "]-    [Just [" 0: 12"],-     Just [" 1: 1"],-     Just [" 2: 2"],-     Just [" 0: 12a"],-     Just [" 1: 1"],-     Just [" 2: 2"],-     Just [" 0: 12aa"],-     Just [" 1: 1"],-     Just [" 2: 2"],-     Nothing,-     Nothing]-,---testRegex "((?i)blah)\\s+\\1" []-    ["blah blah",-     "BLAH BLAH",-     "Blah Blah",-     "blaH blaH",-     "*** Failers",-     "blah BLAH",-     "Blah blah      ",-     "blaH blah "]-    [Just [" 0: blah blah"],-     Just [" 1: blah"],-     Just [" 0: BLAH BLAH"],-     Just [" 1: BLAH"],-     Just [" 0: Blah Blah"],-     Just [" 1: Blah"],-     Just [" 0: blaH blaH"],-     Just [" 1: blaH"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "((?i)blah)\\s+(?i:\\1)" []-    ["blah blah",-     "BLAH BLAH",-     "Blah Blah",-     "blaH blaH",-     "blah BLAH",-     "Blah blah      ",-     "blaH blah "]-    [Just [" 0: blah blah"],-     Just [" 1: blah"],-     Just [" 0: BLAH BLAH"],-     Just [" 1: BLAH"],-     Just [" 0: Blah Blah"],-     Just [" 1: Blah"],-     Just [" 0: blaH blaH"],-     Just [" 1: blaH"],-     Just [" 0: blah BLAH"],-     Just [" 1: blah"],-     Just [" 0: Blah blah"],-     Just [" 1: Blah"],-     Just [" 0: blaH blah"],-     Just [" 1: blaH"]]-,---testRegex "(?>a*)*" []-    ["a",-     "aa",-     "aaaa",-     "",-     "/(abc|)+/",-     "abc",-     "abcabc",-     "abcabcabc",-     "xyz      "]-    [Just [" 0: a"],-     Just [" 0: aa"],-     Just [" 0: aaaa"],-     Just ["/(abc|)+/"],-     Just [" 0: abc"],-     Just [" 1: "],-     Just [" 0: abcabc"],-     Just [" 1: "],-     Just [" 0: abcabcabc"],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "]]-,---testRegex "([a]*)*" []-    ["a",-     "aaaaa ",-     "",-     "/([ab]*)*/",-     "a",-     "b",-     "ababab",-     "aaaabcde",-     "bbbb    ",-     "",-     "/([^a]*)*/",-     "b",-     "bbbb",-     "aaa   ",-     "",-     "/([^ab]*)*/",-     "cccc",-     "abab  ",-     "",-     "/([a]*?)*/",-     "a",-     "aaaa ",-     "",-     "/([ab]*?)*/",-     "a",-     "b",-     "abab",-     "baba   ",-     "",-     "/([^a]*?)*/",-     "b",-     "bbbb",-     "aaa   ",-     "",-     "/([^ab]*?)*/",-     "c",-     "cccc",-     "baba   ",-     "",-     "/(?>a*)*/",-     "a",-     "aaabcde ",-     "",-     "/((?>a*))*/",-     "aaaaa",-     "aabbaa ",-     "",-     "/((?>a*?))*/",-     "aaaaa",-     "aabbaa "]-    [Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aaaaa"],-     Just [" 1: "],-     Just ["/([ab]*)*/"],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: b"],-     Just [" 1: "],-     Just [" 0: ababab"],-     Just [" 1: "],-     Just [" 0: aaaab"],-     Just [" 1: "],-     Just [" 0: bbbb"],-     Just [" 1: "],-     Just ["/([^a]*)*/"],-     Just [" 0: b"],-     Just [" 1: "],-     Just [" 0: bbbb"],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just ["/([^ab]*)*/"],-     Just [" 0: cccc"],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just ["/([a]*?)*/"],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just ["/([ab]*?)*/"],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just ["/([^a]*?)*/"],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just ["/([^ab]*?)*/"],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just ["/(?>a*)*/"],-     Just [" 0: a"],-     Just [" 0: aaa"],-     Just ["/((?>a*))*/"],-     Just [" 0: aaaaa"],-     Just [" 1: "],-     Just [" 0: aa"],-     Just [" 1: "],-     Just ["/((?>a*?))*/"],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "]]-,---testRegex "(?(?=[^a-z]+[a-z])  \\d{2}-[a-z]{3}-\\d{2}  |  \\d{2}-\\d{2}-\\d{2} ) " [ERROR]-    ["12-sep-98",-     "12-09-98",-     "*** Failers",-     "sep-12-98",-     "",-     "/(?<=(foo))bar\\1/",-     "foobarfoo",-     "foobarfootling ",-     "*** Failers",-     "foobar",-     "barfoo   "]-    [Just [" 0: 12-sep-98"],-     Just [" 0: 12-09-98"],-     Nothing,-     Nothing,-     Just ["/(?<=(foo))bar\\1/"],-     Just [" 0: barfoo"],-     Just [" 1: foo"],-     Just [" 0: barfoo"],-     Just [" 1: foo"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?i:saturday|sunday)" []-    ["saturday",-     "sunday",-     "Saturday",-     "Sunday",-     "SATURDAY",-     "SUNDAY",-     "SunDay",-     "",-     "/(a(?i)bc|BB)x/",-     "abcx",-     "aBCx",-     "bbx",-     "BBx",-     "*** Failers",-     "abcX",-     "aBCX",-     "bbX",-     "BBX               "]-    [Just [" 0: saturday"],-     Just [" 0: sunday"],-     Just [" 0: Saturday"],-     Just [" 0: Sunday"],-     Just [" 0: SATURDAY"],-     Just [" 0: SUNDAY"],-     Just [" 0: SunDay"],-     Just ["/(a(?i)bc|BB)x/"],-     Just [" 0: abcx"],-     Just [" 1: abc"],-     Just [" 0: aBCx"],-     Just [" 1: aBC"],-     Just [" 0: bbx"],-     Just [" 1: bb"],-     Just [" 0: BBx"],-     Just [" 1: BB"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^([ab](?i)[cd]|[ef])" []-    ["ac",-     "aC",-     "bD",-     "elephant",-     "Europe ",-     "frog",-     "France",-     "*** Failers",-     "Africa     "]-    [Just [" 0: ac"],-     Just [" 1: ac"],-     Just [" 0: aC"],-     Just [" 1: aC"],-     Just [" 0: bD"],-     Just [" 1: bD"],-     Just [" 0: e"],-     Just [" 1: e"],-     Just [" 0: E"],-     Just [" 1: E"],-     Just [" 0: f"],-     Just [" 1: f"],-     Just [" 0: F"],-     Just [" 1: F"],-     Nothing,-     Nothing]-,---testRegex "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" []-    ["ab",-     "aBd",-     "xy",-     "xY",-     "zebra",-     "Zambesi",-     "*** Failers",-     "aCD  ",-     "XY  "]-    [Just [" 0: ab"],-     Just [" 1: ab"],-     Just [" 0: aBd"],-     Just [" 1: aBd"],-     Just [" 0: xy"],-     Just [" 1: xy"],-     Just [" 0: xY"],-     Just [" 1: xY"],-     Just [" 0: z"],-     Just [" 1: z"],-     Just [" 0: Z"],-     Just [" 1: Z"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?<=foo\\n)^bar" [ERROR]-    ["foo\\nbar",-     "*** Failers",-     "bar",-     "baz\\nbar   "]-    [Just [" 0: bar"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?<=(?<!foo)bar)baz" []-    ["barbaz",-     "barbarbaz ",-     "koobarbaz ",-     "*** Failers",-     "baz",-     "foobarbaz "]-    [Just [" 0: baz"],-     Just [" 0: baz"],-     Just [" 0: baz"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "The case of aaaaaa is missed out below because I think Perl 5.005_02 gets" []-    ["/it wrong; it sets $1 to aaa rather than aa. Compare the following test,/",-     "/where it does set $1 to aa when matching aaaaaa./"]-    [Just ["/it wrong; it sets $1 to aaa rather than aa. Compare the following test,/"],-     Nothing,-     Just ["/where it does set $1 to aa when matching aaaaaa./"],-     Nothing]-,---testRegex "^(a\\1?){4}$" []-    ["a",-     "aa",-     "aaa",-     "aaaa",-     "aaaaa",-     "aaaaaaa",-     "aaaaaaaa",-     "aaaaaaaaa",-     "aaaaaaaaaa",-     "aaaaaaaaaaa",-     "aaaaaaaaaaaa",-     "aaaaaaaaaaaaa",-     "aaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaaa               "]-    [Nothing,-     Nothing,-     Nothing,-     Just [" 0: aaaa"],-     Just [" 1: a"],-     Just [" 0: aaaaa"],-     Just [" 1: a"],-     Just [" 0: aaaaaaa"],-     Just [" 1: a"],-     Nothing,-     Nothing,-     Just [" 0: aaaaaaaaaa"],-     Just [" 1: aaaa"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$" []-    ["a",-     "aa",-     "aaa",-     "aaaa",-     "aaaaa",-     "aaaaaa",-     "aaaaaaa",-     "aaaaaaaa",-     "aaaaaaaaa",-     "aaaaaaaaaa",-     "aaaaaaaaaaa",-     "aaaaaaaaaaaa",-     "aaaaaaaaaaaaa",-     "aaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaaa               "]-    [Nothing,-     Nothing,-     Nothing,-     Just [" 0: aaaa"],-     Just [" 1: a"],-     Just [" 2: a"],-     Just [" 3: a"],-     Just [" 4: a"],-     Just [" 0: aaaaa"],-     Just [" 1: a"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 4: a"],-     Just [" 0: aaaaaa"],-     Just [" 1: a"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 4: aa"],-     Just [" 0: aaaaaaa"],-     Just [" 1: a"],-     Just [" 2: aa"],-     Just [" 3: aaa"],-     Just [" 4: a"],-     Nothing,-     Nothing,-     Just [" 0: aaaaaaaaaa"],-     Just [" 1: a"],-     Just [" 2: aa"],-     Just [" 3: aaa"],-     Just [" 4: aaaa"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "The following tests are taken from the Perl 5.005 test suite; some of them" []-    ["/are compatible with 5.004, but I'd rather not have to sort them out./"]-    [Just ["/are compatible with 5.004, but I'd rather not have to sort them out./"],-     Nothing]-,---testRegex "abc" []-    ["abc",-     "xabcy",-     "ababc",-     "*** Failers",-     "xbc",-     "axc",-     "abx"]-    [Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "ab*c" []-    ["abc"]-    [Just [" 0: abc"]]-,---testRegex "ab*bc" []-    ["abc",-     "abbc",-     "abbbbc"]-    [Just [" 0: abc"],-     Just [" 0: abbc"],-     Just [" 0: abbbbc"]]-,---testRegex ".{1}" []-    ["abbbbc"]-    [Just [" 0: a"]]-,---testRegex ".{3,4}" []-    ["abbbbc"]-    [Just [" 0: abbb"]]-,---testRegex "ab{0,}bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,---testRegex "ab+bc" []-    ["abbc",-     "*** Failers",-     "abc",-     "abq"]-    [Just [" 0: abbc"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "ab{1,}bc" []-    []-    []-,---testRegex "ab+bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,---testRegex "ab{1,}bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,---testRegex "ab{1,3}bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,---testRegex "ab{3,4}bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,---testRegex "ab{4,5}bc" []-    ["*** Failers",-     "abq",-     "abbbbc"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "ab?bc" []-    ["abbc",-     "abc"]-    [Just [" 0: abbc"],-     Just [" 0: abc"]]-,---testRegex "ab{0,1}bc" []-    ["abc"]-    [Just [" 0: abc"]]-,---testRegex "ab?bc" []-    []-    []-,---testRegex "ab?c" []-    ["abc"]-    [Just [" 0: abc"]]-,---testRegex "ab{0,1}c" []-    ["abc"]-    [Just [" 0: abc"]]-,---testRegex "^abc$" []-    ["abc",-     "*** Failers",-     "abbbbc",-     "abcc"]-    [Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^abc" []-    ["abcc"]-    [Just [" 0: abc"]]-,---testRegex "^abc$" []-    []-    []-,---testRegex "abc$" []-    ["aabc",-     "*** Failers",-     "aabc",-     "aabcd"]-    [Just [" 0: abc"],-     Nothing,-     Just [" 0: abc"],-     Nothing]-,---testRegex "^" []-    ["abc"]-    [Just [" 0: "]]-,---testRegex "$" []-    ["abc"]-    [Just [" 0: "]]-,---testRegex "a.c" []-    ["abc",-     "axc"]-    [Just [" 0: abc"],-     Just [" 0: axc"]]-,---testRegex "a.*c" []-    ["axyzc"]-    [Just [" 0: axyzc"]]-,---testRegex "a[bc]d" []-    ["abd",-     "*** Failers",-     "axyzd",-     "abc"]-    [Just [" 0: abd"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "a[b-d]e" []-    ["ace"]-    [Just [" 0: ace"]]-,---testRegex "a[b-d]" []-    ["aac"]-    [Just [" 0: ac"]]-,---testRegex "a[-b]" []-    ["a-"]-    [Just [" 0: a-"]]-,---testRegex "a[b-]" []-    ["a-"]-    [Just [" 0: a-"]]-,---testRegex "a]" []-    ["a]"]-    [Just [" 0: a]"]]-,---testRegex "a[]]b" []-    ["a]b"]-    [Just [" 0: a]b"]]-,---testRegex "a[^bc]d" []-    ["aed",-     "*** Failers",-     "abd",-     "abd"]-    [Just [" 0: aed"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "a[^-b]c" []-    ["adc"]-    [Just [" 0: adc"]]-,---testRegex "a[^]b]c" []-    ["adc",-     "*** Failers",-     "a-c",-     "a]c"]-    [Just [" 0: adc"],-     Nothing,-     Just [" 0: a-c"],-     Nothing]-,---testRegex "\\ba\\b" []-    ["a-",-     "-a",-     "-a-"]-    [Just [" 0: a"],-     Just [" 0: a"],-     Just [" 0: a"]]-,---testRegex "\\by\\b" []-    ["*** Failers",-     "xy",-     "yz",-     "xyz"]-    [Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "\\Ba\\B" []-    ["*** Failers",-     "a-",-     "-a",-     "-a-"]-    [Just [" 0: a"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "\\By\\b" []-    ["xy"]-    [Just [" 0: y"]]-,---testRegex "\\by\\B" []-    ["yz"]-    [Just [" 0: y"]]-,---testRegex "\\By\\B" []-    ["xyz"]-    [Just [" 0: y"]]-,---testRegex "\\w" []-    ["a"]-    [Just [" 0: a"]]-,---testRegex "\\W" []-    ["-",-     "*** Failers",-     "-",-     "a"]-    [Just [" 0: -"],-     Just [" 0: *"],-     Just [" 0: -"],-     Nothing]-,---testRegex "a\\sb" []-    ["a b"]-    [Just [" 0: a b"]]-,---testRegex "a\\Sb" []-    ["a-b",-     "*** Failers",-     "a-b",-     "a b"]-    [Just [" 0: a-b"],-     Nothing,-     Just [" 0: a-b"],-     Nothing]-,---testRegex "\\d" []-    ["1"]-    [Just [" 0: 1"]]-,---testRegex "\\D" []-    ["-",-     "*** Failers",-     "-",-     "1"]-    [Just [" 0: -"],-     Just [" 0: *"],-     Just [" 0: -"],-     Nothing]-,---testRegex "[\\w]" []-    ["a"]-    [Just [" 0: a"]]-,---testRegex "[\\W]" []-    ["-",-     "*** Failers",-     "-",-     "a"]-    [Just [" 0: -"],-     Just [" 0: *"],-     Just [" 0: -"],-     Nothing]-,---testRegex "a[\\s]b" []-    ["a b"]-    [Just [" 0: a b"]]-,---testRegex "a[\\S]b" []-    ["a-b",-     "*** Failers",-     "a-b",-     "a b"]-    [Just [" 0: a-b"],-     Nothing,-     Just [" 0: a-b"],-     Nothing]-,---testRegex "[\\d]" []-    ["1"]-    [Just [" 0: 1"]]-,---testRegex "[\\D]" []-    ["-",-     "*** Failers",-     "-",-     "1"]-    [Just [" 0: -"],-     Just [" 0: *"],-     Just [" 0: -"],-     Nothing]-,---testRegex "ab|cd" []-    ["abc",-     "abcd"]-    [Just [" 0: ab"],-     Just [" 0: ab"]]-,---testRegex "()ef" []-    ["def"]-    [Just [" 0: ef"],-     Just [" 1: "]]-,---testRegex "$b" []-    []-    []-,---testRegex "a\\(b" []-    ["a(b"]-    [Just [" 0: a(b"]]-,---testRegex "a\\(*b" []-    ["ab",-     "a((b"]-    [Just [" 0: ab"],-     Just [" 0: a((b"]]-,---testRegex "a\\\\b" []-    ["a\\b"]-    [Nothing]-,---testRegex "((a))" []-    ["abc"]-    [Just [" 0: a"],-     Just [" 1: a"],-     Just [" 2: a"]]-,---testRegex "(a)b(c)" []-    ["abc"]-    [Just [" 0: abc"],-     Just [" 1: a"],-     Just [" 2: c"]]-,---testRegex "a+b+c" []-    ["aabbabc"]-    [Just [" 0: abc"]]-,---testRegex "a{1,}b{1,}c" []-    ["aabbabc"]-    [Just [" 0: abc"]]-,---testRegex "a.+?c" []-    ["abcabc"]-    [Just [" 0: abc"]]-,---testRegex "(a+|b)*" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: b"]]-,---testRegex "(a+|b){0,}" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: b"]]-,---testRegex "(a+|b)+" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: b"]]-,---testRegex "(a+|b){1,}" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: b"]]-,---testRegex "(a+|b)?" []-    ["ab"]-    [Just [" 0: a"],-     Just [" 1: a"]]-,---testRegex "(a+|b){0,1}" []-    ["ab"]-    [Just [" 0: a"],-     Just [" 1: a"]]-,---testRegex "[^ab]*" []-    ["cde"]-    [Just [" 0: cde"]]-,---testRegex "abc" []-    ["*** Failers",-     "b",-     ""]-    [Nothing,-     Nothing]-,---testRegex "a*" []-    [""]-    []-,---testRegex "([abc])*d" []-    ["abbbcd"]-    [Just [" 0: abbbcd"],-     Just [" 1: c"]]-,---testRegex "([abc])*bcd" []-    ["abcd"]-    [Just [" 0: abcd"],-     Just [" 1: a"]]-,---testRegex "a|b|c|d|e" []-    ["e"]-    [Just [" 0: e"]]-,---testRegex "(a|b|c|d|e)f" []-    ["ef"]-    [Just [" 0: ef"],-     Just [" 1: e"]]-,---testRegex "abcd*efg" []-    ["abcdefg"]-    [Just [" 0: abcdefg"]]-,---testRegex "ab*" []-    ["xabyabbbz",-     "xayabbbz"]-    [Just [" 0: ab"],-     Just [" 0: a"]]-,---testRegex "(ab|cd)e" []-    ["abcde"]-    [Just [" 0: cde"],-     Just [" 1: cd"]]-,---testRegex "[abhgefdc]ij" []-    ["hij"]-    [Just [" 0: hij"]]-,---testRegex "^(ab|cd)e" []-    []-    []-,---testRegex "(abc|)ef" []-    ["abcdef"]-    [Just [" 0: ef"],-     Just [" 1: "]]-,---testRegex "(a|b)c*d" []-    ["abcd"]-    [Just [" 0: bcd"],-     Just [" 1: b"]]-,---testRegex "(ab|ab*)bc" []-    ["abc"]-    [Just [" 0: abc"],-     Just [" 1: a"]]-,---testRegex "a([bc]*)c*" []-    ["abc"]-    [Just [" 0: abc"],-     Just [" 1: bc"]]-,---testRegex "a([bc]*)(c*d)" []-    ["abcd"]-    [Just [" 0: abcd"],-     Just [" 1: bc"],-     Just [" 2: d"]]-,---testRegex "a([bc]+)(c*d)" []-    ["abcd"]-    [Just [" 0: abcd"],-     Just [" 1: bc"],-     Just [" 2: d"]]-,---testRegex "a([bc]*)(c+d)" []-    ["abcd"]-    [Just [" 0: abcd"],-     Just [" 1: b"],-     Just [" 2: cd"]]-,---testRegex "a[bcd]*dcdcde" []-    ["adcdcde"]-    [Just [" 0: adcdcde"]]-,---testRegex "a[bcd]+dcdcde" []-    ["*** Failers",-     "abcde",-     "adcdcde"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "(ab|a)b*c" []-    ["abc"]-    [Just [" 0: abc"],-     Just [" 1: ab"]]-,---testRegex "((a)(b)c)(d)" []-    ["abcd"]-    [Just [" 0: abcd"],-     Just [" 1: abc"],-     Just [" 2: a"],-     Just [" 3: b"],-     Just [" 4: d"]]-,---testRegex "[a-zA-Z_][a-zA-Z0-9_]*" []-    ["alpha"]-    [Just [" 0: alpha"]]-,---testRegex "^a(bc+|b[eh])g|.h$" []-    ["abh"]-    [Just [" 0: bh"]]-,---testRegex "(bc+d$|ef*g.|h?i(j|k))" []-    ["effgz",-     "ij",-     "reffgz",-     "*** Failers",-     "effg",-     "bcdd"]-    [Just [" 0: effgz"],-     Just [" 1: effgz"],-     Just [" 0: ij"],-     Just [" 1: ij"],-     Just [" 2: j"],-     Just [" 0: effgz"],-     Just [" 1: effgz"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "((((((((((a))))))))))" []-    ["a"]-    [Just [" 0: a"],-     Just [" 1: a"],-     Just [" 2: a"],-     Just [" 3: a"],-     Just [" 4: a"],-     Just [" 5: a"],-     Just [" 6: a"],-     Just [" 7: a"],-     Just [" 8: a"],-     Just [" 9: a"],-     Just ["10: a"]]-,---testRegex "((((((((((a))))))))))\\10" []-    ["aa"]-    [Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 2: a"],-     Just [" 3: a"],-     Just [" 4: a"],-     Just [" 5: a"],-     Just [" 6: a"],-     Just [" 7: a"],-     Just [" 8: a"],-     Just [" 9: a"],-     Just ["10: a"]]-,---testRegex "(((((((((a)))))))))" []-    ["a"]-    [Just [" 0: a"],-     Just [" 1: a"],-     Just [" 2: a"],-     Just [" 3: a"],-     Just [" 4: a"],-     Just [" 5: a"],-     Just [" 6: a"],-     Just [" 7: a"],-     Just [" 8: a"],-     Just [" 9: a"]]-,---testRegex "multiple words of text" []-    ["*** Failers",-     "aa",-     "uh-uh"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "multiple words" []-    ["multiple words, yeah"]-    [Just [" 0: multiple words"]]-,---testRegex "(.*)c(.*)" []-    ["abcde"]-    [Just [" 0: abcde"],-     Just [" 1: ab"],-     Just [" 2: de"]]-,---testRegex "\\((.*), (.*)\\)" []-    ["(a, b)"]-    [Just [" 0: (a, b)"],-     Just [" 1: a"],-     Just [" 2: b"]]-,---testRegex "[k]" []-    []-    []-,---testRegex "abcd" []-    ["abcd"]-    [Just [" 0: abcd"]]-,---testRegex "a(bc)d" []-    ["abcd"]-    [Just [" 0: abcd"],-     Just [" 1: bc"]]-,---testRegex "a[-]?c" []-    ["ac"]-    [Just [" 0: ac"]]-,---testRegex "(abc)\\1" []-    ["abcabc"]-    [Just [" 0: abcabc"],-     Just [" 1: abc"]]-,---testRegex "([a-c]*)\\1" []-    ["abcabc"]-    [Just [" 0: abcabc"],-     Just [" 1: abc"]]-,---testRegex "(a)|\\1" []-    ["a",-     "*** Failers",-     "ab",-     "x"]-    [Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: a"],-     Just [" 1: a"],-     Nothing]-,---testRegex "(([a-c])b*?\\2)*" []-    ["ababbbcbc"]-    [Just [" 0: ababb"],-     Just [" 1: bb"],-     Just [" 2: b"]]-,---testRegex "(([a-c])b*?\\2){3}" []-    ["ababbbcbc"]-    [Just [" 0: ababbbcbc"],-     Just [" 1: cbc"],-     Just [" 2: c"]]-,---testRegex "((\\3|b)\\2(a)x)+" []-    ["aaaxabaxbaaxbbax"]-    [Just [" 0: bbax"],-     Just [" 1: bbax"],-     Just [" 2: b"],-     Just [" 3: a"]]-,---testRegex "((\\3|b)\\2(a)){2,}" []-    ["bbaababbabaaaaabbaaaabba"]-    [Just [" 0: bbaaaabba"],-     Just [" 1: bba"],-     Just [" 2: b"],-     Just [" 3: a"]]-,---testRegex "abc" [caseless]-    ["ABC",-     "XABCY",-     "ABABC",-     "*** Failers",-     "aaxabxbaxbbx",-     "XBC",-     "AXC",-     "ABX"]-    [Just [" 0: ABC"],-     Just [" 0: ABC"],-     Just [" 0: ABC"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "ab*c" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,---testRegex "ab*bc" [caseless]-    ["ABC",-     "ABBC"]-    [Just [" 0: ABC"],-     Just [" 0: ABBC"]]-,---testRegex "ab*?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,---testRegex "ab{0,}?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,---testRegex "ab+?bc" [caseless]-    ["ABBC"]-    [Just [" 0: ABBC"]]-,---testRegex "ab+bc" [caseless]-    ["*** Failers",-     "ABC",-     "ABQ"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "ab{1,}bc" [caseless]-    []-    []-,---testRegex "ab+bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,---testRegex "ab{1,}?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,---testRegex "ab{1,3}?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,---testRegex "ab{3,4}?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,---testRegex "ab{4,5}?bc" [caseless]-    ["*** Failers",-     "ABQ",-     "ABBBBC"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "ab??bc" [caseless]-    ["ABBC",-     "ABC"]-    [Just [" 0: ABBC"],-     Just [" 0: ABC"]]-,---testRegex "ab{0,1}?bc" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,---testRegex "ab??bc" [caseless]-    []-    []-,---testRegex "ab??c" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,---testRegex "ab{0,1}?c" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,---testRegex "^abc$" [caseless]-    ["ABC",-     "*** Failers",-     "ABBBBC",-     "ABCC"]-    [Just [" 0: ABC"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^abc" [caseless]-    ["ABCC"]-    [Just [" 0: ABC"]]-,---testRegex "^abc$" [caseless]-    []-    []-,---testRegex "abc$" [caseless]-    ["AABC"]-    [Just [" 0: ABC"]]-,---testRegex "^" [caseless]-    ["ABC"]-    [Just [" 0: "]]-,---testRegex "$" [caseless]-    ["ABC"]-    [Just [" 0: "]]-,---testRegex "a.c" [caseless]-    ["ABC",-     "AXC"]-    [Just [" 0: ABC"],-     Just [" 0: AXC"]]-,---testRegex "a.*?c" [caseless]-    ["AXYZC"]-    [Just [" 0: AXYZC"]]-,---testRegex "a.*c" [caseless]-    ["*** Failers",-     "AABC",-     "AXYZD"]-    [Nothing,-     Just [" 0: AABC"],-     Nothing]-,---testRegex "a[bc]d" [caseless]-    ["ABD"]-    [Just [" 0: ABD"]]-,---testRegex "a[b-d]e" [caseless]-    ["ACE",-     "*** Failers",-     "ABC",-     "ABD"]-    [Just [" 0: ACE"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "a[b-d]" [caseless]-    ["AAC"]-    [Just [" 0: AC"]]-,---testRegex "a[-b]" [caseless]-    ["A-"]-    [Just [" 0: A-"]]-,---testRegex "a[b-]" [caseless]-    ["A-"]-    [Just [" 0: A-"]]-,---testRegex "a]" [caseless]-    ["A]"]-    [Just [" 0: A]"]]-,---testRegex "a[]]b" [caseless]-    ["A]B"]-    [Just [" 0: A]B"]]-,---testRegex "a[^bc]d" [caseless]-    ["AED"]-    [Just [" 0: AED"]]-,---testRegex "a[^-b]c" [caseless]-    ["ADC",-     "*** Failers",-     "ABD",-     "A-C"]-    [Just [" 0: ADC"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "a[^]b]c" [caseless]-    ["ADC"]-    [Just [" 0: ADC"]]-,---testRegex "ab|cd" [caseless]-    ["ABC",-     "ABCD"]-    [Just [" 0: AB"],-     Just [" 0: AB"]]-,---testRegex "()ef" [caseless]-    ["DEF"]-    [Just [" 0: EF"],-     Just [" 1: "]]-,---testRegex "$b" [caseless]-    ["*** Failers",-     "A]C",-     "B"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "a\\(b" [caseless]-    ["A(B"]-    [Just [" 0: A(B"]]-,---testRegex "a\\(*b" [caseless]-    ["AB",-     "A((B"]-    [Just [" 0: AB"],-     Just [" 0: A((B"]]-,---testRegex "a\\\\b" [caseless]-    ["A\\B"]-    [Nothing]-,---testRegex "((a))" [caseless]-    ["ABC"]-    [Just [" 0: A"],-     Just [" 1: A"],-     Just [" 2: A"]]-,---testRegex "(a)b(c)" [caseless]-    ["ABC"]-    [Just [" 0: ABC"],-     Just [" 1: A"],-     Just [" 2: C"]]-,---testRegex "a+b+c" [caseless]-    ["AABBABC"]-    [Just [" 0: ABC"]]-,---testRegex "a{1,}b{1,}c" [caseless]-    ["AABBABC"]-    [Just [" 0: ABC"]]-,---testRegex "a.+?c" [caseless]-    ["ABCABC"]-    [Just [" 0: ABC"]]-,---testRegex "a.*?c" [caseless]-    ["ABCABC"]-    [Just [" 0: ABC"]]-,---testRegex "a.{0,5}?c" [caseless]-    ["ABCABC"]-    [Just [" 0: ABC"]]-,---testRegex "(a+|b)*" [caseless]-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: B"]]-,---testRegex "(a+|b){0,}" [caseless]-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: B"]]-,---testRegex "(a+|b)+" [caseless]-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: B"]]-,---testRegex "(a+|b){1,}" [caseless]-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: B"]]-,---testRegex "(a+|b)?" [caseless]-    ["AB"]-    [Just [" 0: A"],-     Just [" 1: A"]]-,---testRegex "(a+|b){0,1}" [caseless]-    ["AB"]-    [Just [" 0: A"],-     Just [" 1: A"]]-,---testRegex "(a+|b){0,1}?" [caseless]-    ["AB"]-    [Just [" 0: "]]-,---testRegex "[^ab]*" [caseless]-    ["CDE"]-    [Just [" 0: CDE"]]-,---testRegex "abc" [caseless]-    []-    []-,---testRegex "a*" [caseless]-    [""]-    []-,---testRegex "([abc])*d" [caseless]-    ["ABBBCD"]-    [Just [" 0: ABBBCD"],-     Just [" 1: C"]]-,---testRegex "([abc])*bcd" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"],-     Just [" 1: A"]]-,---testRegex "a|b|c|d|e" [caseless]-    ["E"]-    [Just [" 0: E"]]-,---testRegex "(a|b|c|d|e)f" [caseless]-    ["EF"]-    [Just [" 0: EF"],-     Just [" 1: E"]]-,---testRegex "abcd*efg" [caseless]-    ["ABCDEFG"]-    [Just [" 0: ABCDEFG"]]-,---testRegex "ab*" [caseless]-    ["XABYABBBZ",-     "XAYABBBZ"]-    [Just [" 0: AB"],-     Just [" 0: A"]]-,---testRegex "(ab|cd)e" [caseless]-    ["ABCDE"]-    [Just [" 0: CDE"],-     Just [" 1: CD"]]-,---testRegex "[abhgefdc]ij" [caseless]-    ["HIJ"]-    [Just [" 0: HIJ"]]-,---testRegex "^(ab|cd)e" [caseless]-    ["ABCDE"]-    [Nothing]-,---testRegex "(abc|)ef" [caseless]-    ["ABCDEF"]-    [Just [" 0: EF"],-     Just [" 1: "]]-,---testRegex "(a|b)c*d" [caseless]-    ["ABCD"]-    [Just [" 0: BCD"],-     Just [" 1: B"]]-,---testRegex "(ab|ab*)bc" [caseless]-    ["ABC"]-    [Just [" 0: ABC"],-     Just [" 1: A"]]-,---testRegex "a([bc]*)c*" [caseless]-    ["ABC"]-    [Just [" 0: ABC"],-     Just [" 1: BC"]]-,---testRegex "a([bc]*)(c*d)" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"],-     Just [" 1: BC"],-     Just [" 2: D"]]-,---testRegex "a([bc]+)(c*d)" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"],-     Just [" 1: BC"],-     Just [" 2: D"]]-,---testRegex "a([bc]*)(c+d)" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"],-     Just [" 1: B"],-     Just [" 2: CD"]]-,---testRegex "a[bcd]*dcdcde" [caseless]-    ["ADCDCDE"]-    [Just [" 0: ADCDCDE"]]-,---testRegex "a[bcd]+dcdcde" [caseless]-    []-    []-,---testRegex "(ab|a)b*c" [caseless]-    ["ABC"]-    [Just [" 0: ABC"],-     Just [" 1: AB"]]-,---testRegex "((a)(b)c)(d)" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"],-     Just [" 1: ABC"],-     Just [" 2: A"],-     Just [" 3: B"],-     Just [" 4: D"]]-,---testRegex "[a-zA-Z_][a-zA-Z0-9_]*" [caseless]-    ["ALPHA"]-    [Just [" 0: ALPHA"]]-,---testRegex "^a(bc+|b[eh])g|.h$" [caseless]-    ["ABH"]-    [Just [" 0: BH"]]-,---testRegex "(bc+d$|ef*g.|h?i(j|k))" [caseless]-    ["EFFGZ",-     "IJ",-     "REFFGZ",-     "*** Failers",-     "ADCDCDE",-     "EFFG",-     "BCDD"]-    [Just [" 0: EFFGZ"],-     Just [" 1: EFFGZ"],-     Just [" 0: IJ"],-     Just [" 1: IJ"],-     Just [" 2: J"],-     Just [" 0: EFFGZ"],-     Just [" 1: EFFGZ"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "((((((((((a))))))))))" [caseless]-    ["A"]-    [Just [" 0: A"],-     Just [" 1: A"],-     Just [" 2: A"],-     Just [" 3: A"],-     Just [" 4: A"],-     Just [" 5: A"],-     Just [" 6: A"],-     Just [" 7: A"],-     Just [" 8: A"],-     Just [" 9: A"],-     Just ["10: A"]]-,---testRegex "((((((((((a))))))))))\\10" [caseless]-    ["AA"]-    [Just [" 0: AA"],-     Just [" 1: A"],-     Just [" 2: A"],-     Just [" 3: A"],-     Just [" 4: A"],-     Just [" 5: A"],-     Just [" 6: A"],-     Just [" 7: A"],-     Just [" 8: A"],-     Just [" 9: A"],-     Just ["10: A"]]-,---testRegex "(((((((((a)))))))))" [caseless]-    ["A"]-    [Just [" 0: A"],-     Just [" 1: A"],-     Just [" 2: A"],-     Just [" 3: A"],-     Just [" 4: A"],-     Just [" 5: A"],-     Just [" 6: A"],-     Just [" 7: A"],-     Just [" 8: A"],-     Just [" 9: A"]]-,---testRegex "(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))" [caseless]-    ["A"]-    [Just [" 0: A"],-     Just [" 1: A"]]-,---testRegex "(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))" [caseless]-    ["C"]-    [Just [" 0: C"],-     Just [" 1: C"]]-,---testRegex "multiple words of text" [caseless]-    ["*** Failers",-     "AA",-     "UH-UH"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "multiple words" [caseless]-    ["MULTIPLE WORDS, YEAH"]-    [Just [" 0: MULTIPLE WORDS"]]-,---testRegex "(.*)c(.*)" [caseless]-    ["ABCDE"]-    [Just [" 0: ABCDE"],-     Just [" 1: AB"],-     Just [" 2: DE"]]-,---testRegex "\\((.*), (.*)\\)" [caseless]-    ["(A, B)"]-    [Just [" 0: (A, B)"],-     Just [" 1: A"],-     Just [" 2: B"]]-,---testRegex "[k]" [caseless]-    []-    []-,---testRegex "abcd" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"]]-,---testRegex "a(bc)d" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"],-     Just [" 1: BC"]]-,---testRegex "a[-]?c" [caseless]-    ["AC"]-    [Just [" 0: AC"]]-,---testRegex "(abc)\\1" [caseless]-    ["ABCABC"]-    [Just [" 0: ABCABC"],-     Just [" 1: ABC"]]-,---testRegex "([a-c]*)\\1" [caseless]-    ["ABCABC"]-    [Just [" 0: ABCABC"],-     Just [" 1: ABC"]]-,---testRegex "a(?!b)." []-    ["abad"]-    [Just [" 0: ad"]]-,---testRegex "a(?=d)." []-    ["abad"]-    [Just [" 0: ad"]]-,---testRegex "a(?=c|d)." []-    ["abad"]-    [Just [" 0: ad"]]-,---testRegex "a(?:b|c|d)(.)" []-    ["ace"]-    [Just [" 0: ace"],-     Just [" 1: e"]]-,---testRegex "a(?:b|c|d)*(.)" []-    ["ace"]-    [Just [" 0: ace"],-     Just [" 1: e"]]-,---testRegex "a(?:b|c|d)+?(.)" []-    ["ace",-     "acdbcdbe"]-    [Just [" 0: ace"],-     Just [" 1: e"],-     Just [" 0: acd"],-     Just [" 1: d"]]-,---testRegex "a(?:b|c|d)+(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: e"]]-,---testRegex "a(?:b|c|d){2}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdb"],-     Just [" 1: b"]]-,---testRegex "a(?:b|c|d){4,5}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdb"],-     Just [" 1: b"]]-,---testRegex "a(?:b|c|d){4,5}?(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcd"],-     Just [" 1: d"]]-,---testRegex "((foo)|(bar))*" []-    ["foobar"]-    [Just [" 0: foobar"],-     Just [" 1: bar"],-     Just [" 2: foo"],-     Just [" 3: bar"]]-,---testRegex "a(?:b|c|d){6,7}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: e"]]-,---testRegex "a(?:b|c|d){6,7}?(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: e"]]-,---testRegex "a(?:b|c|d){5,6}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: e"]]-,---testRegex "a(?:b|c|d){5,6}?(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdb"],-     Just [" 1: b"]]-,---testRegex "a(?:b|c|d){5,7}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: e"]]-,---testRegex "a(?:b|c|d){5,7}?(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdb"],-     Just [" 1: b"]]-,---testRegex "a(?:b|(c|e){1,2}?|d)+?(.)" []-    ["ace"]-    [Just [" 0: ace"],-     Just [" 1: c"],-     Just [" 2: e"]]-,---testRegex "^(.+)?B" []-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: A"]]-,---testRegex "^([^a-z])|(\\^)$" []-    ["."]-    [Just [" 0: ."],-     Just [" 1: ."]]-,---testRegex "^[<>]&" []-    ["<&OUT"]-    [Just [" 0: <&"]]-,---testRegex "^(a\\1?){4}$" []-    ["aaaaaaaaaa",-     "*** Failers",-     "AB",-     "aaaaaaaaa",-     "aaaaaaaaaaa"]-    [Just [" 0: aaaaaaaaaa"],-     Just [" 1: aaaa"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^(a(?(1)\\1)){4}$" []-    ["aaaaaaaaaa",-     "*** Failers",-     "aaaaaaaaa",-     "aaaaaaaaaaa"]-    [Just [" 0: aaaaaaaaaa"],-     Just [" 1: aaaa"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?:(f)(o)(o)|(b)(a)(r))*" []-    ["foobar"]-    [Just [" 0: foobar"],-     Just [" 1: f"],-     Just [" 2: o"],-     Just [" 3: o"],-     Just [" 4: b"],-     Just [" 5: a"],-     Just [" 6: r"]]-,---testRegex "(?<=a)b" []-    ["ab",-     "*** Failers",-     "cb",-     "b"]-    [Just [" 0: b"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?<!c)b" []-    ["ab",-     "b",-     "b"]-    [Just [" 0: b"],-     Just [" 0: b"],-     Just [" 0: b"]]-,---testRegex "(?:..)*a" []-    ["aba"]-    [Just [" 0: aba"]]-,---testRegex "(?:..)*?a" []-    ["aba"]-    [Just [" 0: a"]]-,---testRegex "^(?:b|a(?=(.)))*\\1" []-    ["abc"]-    [Just [" 0: ab"],-     Just [" 1: b"]]-,---testRegex "^(){3,5}" []-    ["abc"]-    [Just [" 0: "],-     Just [" 1: "]]-,---testRegex "^(a+)*ax" []-    ["aax"]-    [Just [" 0: aax"],-     Just [" 1: a"]]-,---testRegex "^((a|b)+)*ax" []-    ["aax"]-    [Just [" 0: aax"],-     Just [" 1: a"],-     Just [" 2: a"]]-,---testRegex "^((a|bc)+)*ax" []-    ["aax"]-    [Just [" 0: aax"],-     Just [" 1: a"],-     Just [" 2: a"]]-,---testRegex "(a|x)*ab" []-    ["cab"]-    [Just [" 0: ab"]]-,---testRegex "(a)*ab" []-    ["cab"]-    [Just [" 0: ab"]]-,---testRegex "(?:(?i)a)b" []-    ["ab"]-    [Just [" 0: ab"]]-,---testRegex "((?i)a)b" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: a"]]-,---testRegex "(?:(?i)a)b" []-    ["Ab"]-    [Just [" 0: Ab"]]-,---testRegex "((?i)a)b" []-    ["Ab"]-    [Just [" 0: Ab"],-     Just [" 1: A"]]-,---testRegex "(?:(?i)a)b" []-    ["*** Failers",-     "cb",-     "aB"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "((?i)a)b" []-    []-    []-,---testRegex "(?i:a)b" []-    ["ab"]-    [Just [" 0: ab"]]-,---testRegex "((?i:a))b" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: a"]]-,---testRegex "(?i:a)b" []-    ["Ab"]-    [Just [" 0: Ab"]]-,---testRegex "((?i:a))b" []-    ["Ab"]-    [Just [" 0: Ab"],-     Just [" 1: A"]]-,---testRegex "(?i:a)b" []-    ["*** Failers",-     "aB",-     "aB"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "((?i:a))b" []-    []-    []-,---testRegex "(?:(?-i)a)b" [caseless]-    ["ab"]-    [Just [" 0: ab"]]-,---testRegex "((?-i)a)b" [caseless]-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: a"]]-,---testRegex "(?:(?-i)a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,---testRegex "((?-i)a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"],-     Just [" 1: a"]]-,---testRegex "(?:(?-i)a)b" [caseless]-    ["*** Failers",-     "aB",-     "Ab"]-    [Nothing,-     Just [" 0: aB"],-     Nothing]-,---testRegex "((?-i)a)b" [caseless]-    []-    []-,---testRegex "(?:(?-i)a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,---testRegex "((?-i)a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"],-     Just [" 1: a"]]-,---testRegex "(?:(?-i)a)b" [caseless]-    ["*** Failers",-     "Ab",-     "AB"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "((?-i)a)b" [caseless]-    []-    []-,---testRegex "(?-i:a)b" [caseless]-    ["ab"]-    [Just [" 0: ab"]]-,---testRegex "((?-i:a))b" [caseless]-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: a"]]-,---testRegex "(?-i:a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,---testRegex "((?-i:a))b" [caseless]-    ["aB"]-    [Just [" 0: aB"],-     Just [" 1: a"]]-,---testRegex "(?-i:a)b" [caseless]-    ["*** Failers",-     "AB",-     "Ab"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "((?-i:a))b" [caseless]-    []-    []-,---testRegex "(?-i:a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,---testRegex "((?-i:a))b" [caseless]-    ["aB"]-    [Just [" 0: aB"],-     Just [" 1: a"]]-,---testRegex "(?-i:a)b" [caseless]-    ["*** Failers",-     "Ab",-     "AB"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "((?-i:a))b" [caseless]-    []-    []-,---testRegex "((?-i:a.))b" [caseless]-    ["*** Failers",-     "AB",-     "a\\nB"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "((?s-i:a.))b" [caseless]-    ["a\\nB"]-    [Just [" 0: a\\x0aB"],-     Just [" 1: a\\x0a"]]-,---testRegex "(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))" []-    ["cabbbb"]-    [Just [" 0: cabbbb"]]-,---testRegex "(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))" []-    ["caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"]-    [Just [" 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"]]-,---testRegex "(ab)\\d\\1" [caseless]-    ["Ab4ab",-     "ab4Ab"]-    [Just [" 0: Ab4ab"],-     Just [" 1: Ab"],-     Just [" 0: ab4Ab"],-     Just [" 1: ab"]]-,---testRegex "foo\\w*\\d{4}baz" []-    ["foobar1234baz"]-    [Just [" 0: foobar1234baz"]]-,---testRegex "x(~~)*(?:(?:F)?)?" []-    ["x~~"]-    [Just [" 0: x~~"],-     Just [" 1: ~~"]]-,---testRegex "^a(?#xxx){3}c" []-    ["aaac"]-    [Just [" 0: aaac"]]-,---testRegex "^a (?#xxx) (?#yyy) {3}c" [ERROR]-    ["aaac"]-    [Just [" 0: aaac"]]-,---testRegex "(?<![cd])b" []-    ["*** Failers",-     "B\\nB",-     "dbcb"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "(?<![cd])[ab]" []-    ["dbaacb"]-    [Just [" 0: a"]]-,---testRegex "(?<!(c|d))b" []-    []-    []-,---testRegex "(?<!(c|d))[ab]" []-    ["dbaacb"]-    [Just [" 0: a"]]-,---testRegex "(?<!cd)[ab]" []-    ["cdaccb"]-    [Just [" 0: b"]]-,---testRegex "^(?:a?b?)*$" []-    ["\\",-     "a",-     "ab",-     "aaa   ",-     "*** Failers",-     "dbcb",-     "a--",-     "aa-- "]-    [Just [" 0: "],-     Just [" 0: a"],-     Just [" 0: ab"],-     Just [" 0: aaa"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "((?s)^a(.))((?m)^b$)" []-    ["a\\nb\\nc\\n"]-    [Just [" 0: a\\x0ab"],-     Just [" 1: a\\x0a"],-     Just [" 2: \\x0a"],-     Just [" 3: b"]]-,---testRegex "((?m)^b$)" []-    ["a\\nb\\nc\\n"]-    [Just [" 0: b"],-     Just [" 1: b"]]-,---testRegex "(?m)^b" []-    ["a\\nb\\n"]-    [Just [" 0: b"]]-,---testRegex "(?m)^(b)" []-    ["a\\nb\\n"]-    [Just [" 0: b"],-     Just [" 1: b"]]-,---testRegex "((?m)^b)" []-    ["a\\nb\\n"]-    [Just [" 0: b"],-     Just [" 1: b"]]-,---testRegex "\\n((?m)^b)" []-    ["a\\nb\\n"]-    [Just [" 0: \\x0ab"],-     Just [" 1: b"]]-,---testRegex "((?s).)c(?!.)" []-    ["a\\nb\\nc\\n",-     "a\\nb\\nc\\n"]-    [Just [" 0: \\x0ac"],-     Just [" 1: \\x0a"],-     Just [" 0: \\x0ac"],-     Just [" 1: \\x0a"]]-,---testRegex "((?s)b.)c(?!.)" []-    ["a\\nb\\nc\\n",-     "a\\nb\\nc\\n"]-    [Just [" 0: b\\x0ac"],-     Just [" 1: b\\x0a"],-     Just [" 0: b\\x0ac"],-     Just [" 1: b\\x0a"]]-,---testRegex "^b" []-    []-    []-,---testRegex "()^b" []-    ["*** Failers",-     "a\\nb\\nc\\n",-     "a\\nb\\nc\\n"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "((?m)^b)" []-    ["a\\nb\\nc\\n"]-    [Just [" 0: b"],-     Just [" 1: b"]]-,---testRegex "(?(1)a|b)" []-    []-    []-,---testRegex "(?(1)b|a)" []-    ["a"]-    [Just [" 0: a"]]-,---testRegex "(x)?(?(1)a|b)" []-    ["*** Failers",-     "a",-     "a"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "(x)?(?(1)b|a)" []-    ["a"]-    [Just [" 0: a"]]-,---testRegex "()?(?(1)b|a)" []-    ["a"]-    [Just [" 0: a"]]-,---testRegex "()(?(1)b|a)" []-    []-    []-,---testRegex "()?(?(1)a|b)" []-    ["a"]-    [Just [" 0: a"],-     Just [" 1: "]]-,---testRegex "^(\\()?blah(?(1)(\\)))$" []-    ["(blah)",-     "blah",-     "*** Failers",-     "a",-     "blah)",-     "(blah"]-    [Just [" 0: (blah)"],-     Just [" 1: ("],-     Just [" 2: )"],-     Just [" 0: blah"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^(\\(+)?blah(?(1)(\\)))$" []-    ["(blah)",-     "blah",-     "*** Failers",-     "blah)",-     "(blah"]-    [Just [" 0: (blah)"],-     Just [" 1: ("],-     Just [" 2: )"],-     Just [" 0: blah"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?(?!a)a|b)" []-    []-    []-,---testRegex "(?(?!a)b|a)" []-    ["a"]-    [Just [" 0: a"]]-,---testRegex "(?(?=a)b|a)" []-    ["*** Failers",-     "a",-     "a"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "(?(?=a)a|b)" []-    ["a"]-    [Just [" 0: a"]]-,---testRegex "(?=(a+?))(\\1ab)" []-    ["aaab"]-    [Just [" 0: aab"],-     Just [" 1: a"],-     Just [" 2: aab"]]-,---testRegex "^(?=(a+?))\\1ab" []-    []-    []-,---testRegex "(\\w+:)+" []-    ["one:"]-    [Just [" 0: one:"],-     Just [" 1: one:"]]-,---testRegex "$(?<=^(a))" []-    ["a"]-    [Just [" 0: "],-     Just [" 1: a"]]-,---testRegex "(?=(a+?))(\\1ab)" []-    ["aaab"]-    [Just [" 0: aab"],-     Just [" 1: a"],-     Just [" 2: aab"]]-,---testRegex "^(?=(a+?))\\1ab" []-    ["*** Failers",-     "aaab",-     "aaab"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "([\\w:]+::)?(\\w+)$" []-    ["abcd",-     "xy:z:::abcd"]-    [Just [" 0: abcd"],-     Just [" 1: <unset>"],-     Just [" 2: abcd"],-     Just [" 0: xy:z:::abcd"],-     Just [" 1: xy:z:::"],-     Just [" 2: abcd"]]-,---testRegex "^[^bcd]*(c+)" []-    ["aexycd"]-    [Just [" 0: aexyc"],-     Just [" 1: c"]]-,---testRegex "(a*)b+" []-    ["caab"]-    [Just [" 0: aab"],-     Just [" 1: aa"]]-,---testRegex "([\\w:]+::)?(\\w+)$" []-    ["abcd",-     "xy:z:::abcd",-     "*** Failers",-     "abcd:",-     "abcd:"]-    [Just [" 0: abcd"],-     Just [" 1: <unset>"],-     Just [" 2: abcd"],-     Just [" 0: xy:z:::abcd"],-     Just [" 1: xy:z:::"],-     Just [" 2: abcd"],-     Just [" 0: Failers"],-     Just [" 1: <unset>"],-     Just [" 2: Failers"],-     Nothing,-     Nothing]-,---testRegex "^[^bcd]*(c+)" []-    ["aexycd"]-    [Just [" 0: aexyc"],-     Just [" 1: c"]]-,---testRegex "(>a+)ab" []-    []-    []-,---testRegex "(?>a+)b" []-    ["aaab"]-    [Just [" 0: aaab"]]-,---testRegex "([[:]+)" []-    ["a:[b]:"]-    [Just [" 0: :["],-     Just [" 1: :["]]-,---testRegex "([[=]+)" []-    ["a=[b]="]-    [Just [" 0: =["],-     Just [" 1: =["]]-,---testRegex "([[.]+)" []-    ["a.[b]."]-    [Just [" 0: .["],-     Just [" 1: .["]]-,---testRegex "((?>a+)b)" []-    ["aaab"]-    [Just [" 0: aaab"],-     Just [" 1: aaab"]]-,---testRegex "(?>(a+))b" []-    ["aaab"]-    [Just [" 0: aaab"],-     Just [" 1: aaa"]]-,---testRegex "((?>[^()]+)|\\([^()]*\\))+" []-    ["((abc(ade)ufh()()x"]-    [Just [" 0: abc(ade)ufh()()x"],-     Just [" 1: x"]]-,---testRegex "a\\Z" []-    ["*** Failers",-     "aaab",-     "a\\nb\\n"]-    [Nothing,-     Nothing,-     Nothing]-,---testRegex "b\\Z" []-    ["a\\nb\\n"]-    [Just [" 0: b"]]-,---testRegex "b\\z" []-    []-    []-,---testRegex "b\\Z" []-    ["a\\nb"]-    [Just [" 0: b"]]-,---testRegex "b\\z" []-    ["a\\nb",-     "*** Failers",-     "",-     "/^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/",-     "a",-     "abc",-     "a-b",-     "0-9 ",-     "a.b",-     "5.6.7  ",-     "the.quick.brown.fox",-     "a100.b200.300c  ",-     "12-ab.1245 ",-     "*** Failers",-     "\\",-     ".a",-     "-a",-     "a-",-     "a.  ",-     "a_b ",-     "a.-",-     "a..  ",-     "ab..bc ",-     "the.quick.brown.fox-",-     "the.quick.brown.fox.",-     "the.quick.brown.fox_",-     "the.quick.brown.fox+       "]-    [Just [" 0: b"],-     Nothing,-     Just ["/^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$/"],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: abc"],-     Just [" 1: "],-     Just [" 0: a-b"],-     Just [" 1: "],-     Just [" 0: 0-9"],-     Just [" 1: "],-     Just [" 0: a.b"],-     Just [" 1: "],-     Just [" 0: 5.6.7"],-     Just [" 1: "],-     Just [" 0: the.quick.brown.fox"],-     Just [" 1: "],-     Just [" 0: a100.b200.300c"],-     Just [" 1: "],-     Just [" 0: 12-ab.1245"],-     Just [" 1: "],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(?>.*)(?<=(abcd|wxyz))" []-    ["alphabetabcd",-     "endingwxyz",-     "*** Failers",-     "a rather long string that doesn't end with one of them"]-    [Just [" 0: alphabetabcd"],-     Just [" 1: abcd"],-     Just [" 0: endingwxyz"],-     Just [" 1: wxyz"],-     Nothing,-     Nothing]-,---testRegex "word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword" []-    ["word cat dog elephant mussel cow horse canary baboon snake shark otherword",-     "word cat dog elephant mussel cow horse canary baboon snake shark",-     "",-     "/word (?>[a-zA-Z0-9]+ ){0,30}otherword/",-     "word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope"]-    [Just [" 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword"],-     Nothing,-     Just ["/word (?>[a-zA-Z0-9]+ ){0,30}otherword/"],-     Nothing]-,---testRegex "(?<=\\d{3}(?!999))foo" []-    ["999foo",-     "123999foo ",-     "*** Failers",-     "123abcfoo",-     "",-     "/(?<=(?!...999)\\d{3})foo/",-     "999foo",-     "123999foo ",-     "*** Failers",-     "123abcfoo"]-    [Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing,-     Just ["/(?<=(?!...999)\\d{3})foo/"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing]-,---testRegex "(?<=\\d{3}(?!999)...)foo" []-    ["123abcfoo",-     "123456foo ",-     "*** Failers",-     "123999foo  ",-     "",-     "/(?<=\\d{3}...)(?<!999)foo/",-     "123abcfoo   ",-     "123456foo ",-     "*** Failers",-     "123999foo  "]-    [Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing,-     Just ["/(?<=\\d{3}...)(?<!999)foo/"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing]-,---testRegex "ERROR" []-    ["([\\\"\\'])?                       # find single or double quote",-     "(?(1) (.*?)\\1 | ([^\\s]+))       # if quote found, match up to next matching",-     "# quote, otherwise match up to next space",-     "/isx",-     "<a href=abcd xyz",-     "<a href=\\\"abcd xyz pqr\\\" cats",-     "<a href=\\'abcd xyz pqr\\' cats"]-    [Just [" ([\\\"\\'])?                       # find single or double quote"],-     Just [" (?(1) (.*?)\\1 | ([^\\s]+))       # if quote found, match up to next matching"],-     Just ["/isx"],-     Just [" 0: <a href=abcd"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: abcd"],-     Just [" 0: <a href=\"abcd xyz pqr\""],-     Just [" 1: \""],-     Just [" 2: abcd xyz pqr"],-     Just [" 0: <a href='abcd xyz pqr'"],-     Just [" 1: '"],-     Just [" 2: abcd xyz pqr"]]-,---testRegex "ERROR" []-    ["([\"'])?                         # find single or double quote",-     "(?(1) (.*?)\\1 | (\\S+))          # if quote found, match up to next matching",-     "# quote, otherwise match up to next space",-     "/isx",-     "<a href=abcd xyz",-     "<a href=\\\"abcd xyz pqr\\\" cats",-     "<a href       =       \\'abcd xyz pqr\\' cats"]-    [Just [" ([\"'])?                         # find single or double quote"],-     Just [" (?(1) (.*?)\\1 | (\\S+))          # if quote found, match up to next matching"],-     Just ["/isx"],-     Just [" 0: <a href=abcd"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: abcd"],-     Just [" 0: <a href=\"abcd xyz pqr\""],-     Just [" 1: \""],-     Just [" 2: abcd xyz pqr"],-     Just [" 0: <a href       =       'abcd xyz pqr'"],-     Just [" 1: '"],-     Just [" 2: abcd xyz pqr"]]-,---testRegex "ERROR" []-    ["([\"'])?                         # find single or double quote",-     "(?(1) (.*?)\\1 | (\\S+))          # if quote found, match up to next matching",-     "# quote, otherwise match up to next space",-     "/isx",-     "<a href=abcd xyz",-     "<a href=\\\"abcd xyz pqr\\\" cats",-     "<a href       =       \\'abcd xyz pqr\\' cats"]-    [Just [" ([\"'])?                         # find single or double quote"],-     Just [" (?(1) (.*?)\\1 | (\\S+))          # if quote found, match up to next matching"],-     Just ["/isx"],-     Just [" 0: <a href=abcd"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: abcd"],-     Just [" 0: <a href=\"abcd xyz pqr\""],-     Just [" 1: \""],-     Just [" 2: abcd xyz pqr"],-     Just [" 0: <a href       =       'abcd xyz pqr'"],-     Just [" 1: '"],-     Just [" 2: abcd xyz pqr"]]-,---testRegex "((Z)+|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: ZA"],-     Just [" 1: A"],-     Just [" 2: Z"]]-,---testRegex "(Z()|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: ZA"],-     Just [" 1: A"],-     Just [" 2: "]]-,---testRegex "(Z(())|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: ZA"],-     Just [" 1: A"],-     Just [" 2: "],-     Just [" 3: "]]-,---testRegex "((?>Z)+|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: ZA"],-     Just [" 1: A"]]-,---testRegex "((?>)+|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: "],-     Just [" 1: "]]-,---testRegex "a*" [ERROR]-    ["abbab"]-    [Just [" 0: a"],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: a"],-     Just [" 0: "],-     Just [" 0: "]]-,---testRegex "^[a-\\d]" []-    ["abcde",-     "-things",-     "0digit",-     "*** Failers",-     "bcdef    "]-    [Just [" 0: a"],-     Just [" 0: -"],-     Just [" 0: 0"],-     Nothing,-     Nothing]-,---testRegex "^[\\d-a]" []-    ["abcde",-     "-things",-     "0digit",-     "*** Failers",-     "bcdef    ",-     "",-     "/[[:space:]]+/",-     "> \\x09\\x0a\\x0c\\x0d\\x0b<",-     "",-     "/[[:blank:]]+/",-     "> \\x09\\x0a\\x0c\\x0d\\x0b<",-     "",-     "/[\\s]+/",-     "> \\x09\\x0a\\x0c\\x0d\\x0b<",-     "",-     "/\\s+/",-     "> \\x09\\x0a\\x0c\\x0d\\x0b<",-     "",-     "/a\vb/x",-     "ab"]-    [Just [" 0: a"],-     Just [" 0: -"],-     Just [" 0: 0"],-     Nothing,-     Nothing,-     Just ["/[[:space:]]+/"],-     Just [" 0:  \\x09\\x0a\\x0c\\x0d\\x0b"],-     Just ["/[[:blank:]]+/"],-     Just [" 0:  \\x09"],-     Just ["/[\\s]+/"],-     Just [" 0:  \\x09\\x0a\\x0c\\x0d"],-     Just ["/\\s+/"],-     Just [" 0:  \\x09\\x0a\\x0c\\x0d"],-     Just ["/a\vb/x"],-     Nothing]-,---testRegex "(?!\\A)x" [ERROR]-    ["a\\nxb\\n"]-    [Just [" 0: x"]]-,---testRegex "(?!^)x" [ERROR]-    ["a\\nxb\\n"]-    [Nothing]-,---testRegex "abc\\Qabc\\Eabc" []-    ["abcabcabc",-     "",-     "/abc\\Q(*+|\\Eabc/",-     "abc(*+|abc "]-    [Just [" 0: abcabcabc"],-     Just ["/abc\\Q(*+|\\Eabc/"],-     Just [" 0: abc(*+|abc"]]-,---testRegex "   abc\\Q abc\\Eabc" [ERROR]-    ["abc abcabc",-     "*** Failers",-     "abcabcabc  ",-     "",-     "/abc#comment",-     "\\Q#not comment",-     "literal\\E/x",-     "abc#not comment\\n    literal     "]-    [Just [" 0: abc abcabc"],-     Nothing,-     Nothing,-     Just ["/abc#comment"],-     Just [" 0: abc#not comment\\x0a    literal"]]-,---testRegex "ERROR" []-    ["\\Q#not comment",-     "literal/x",-     "abc#not comment\\n    literal     "]-    [Just [" 0: abc#not comment\\x0a    literal"]]-,---testRegex "ERROR" []-    ["\\Q#not comment",-     "literal\\E #more comment",-     "/x",-     "abc#not comment\\n    literal     "]-    [Just [" 0: abc#not comment\\x0a    literal"]]-,---testRegex "ERROR" []-    ["\\Q#not comment",-     "literal\\E #more comment/x",-     "abc#not comment\\n    literal     "]-    [Just [" 0: abc#not comment\\x0a    literal"]]-,---testRegex "\\Qabc\\$xyz\\E" []-    ["abc\\\\\\$xyz"]-    [Just [" 0: abc\\$xyz"]]-,---testRegex "\\Qabc\\E\\$\\Qxyz\\E" []-    ["abc\\$xyz"]-    [Just [" 0: abc$xyz"]]-,---testRegex "\\Gabc" []-    ["abc",-     "*** Failers",-     "xyzabc  "]-    [Just [" 0: abc"],-     Nothing,-     Nothing]-,---testRegex "\\Gabc." [ERROR]-    ["abc1abc2xyzabc3"]-    [Just [" 0: abc1"],-     Just [" 0: abc2"]]-,---testRegex "abc." [ERROR]-    ["abc1abc2xyzabc3 "]-    [Just [" 0: abc1"],-     Just [" 0: abc2"],-     Just [" 0: abc3"]]-,---testRegex "a(?x: b c )d" []-    ["XabcdY",-     "*** Failers ",-     "Xa b c d Y "]-    [Just [" 0: abcd"],-     Nothing,-     Nothing]-,---testRegex "((?x)x y z | a b c)" []-    ["XabcY",-     "AxyzB "]-    [Just [" 0: abc"],-     Just [" 1: abc"],-     Just [" 0: xyz"],-     Just [" 1: xyz"]]-,---testRegex "(?i)AB(?-i)C" []-    ["XabCY",-     "*** Failers",-     "XabcY  "]-    [Just [" 0: abC"],-     Nothing,-     Nothing]-,---testRegex "((?i)AB(?-i)C|D)E" []-    ["abCE",-     "DE",-     "*** Failers",-     "abcE",-     "abCe  ",-     "dE",-     "De    "]-    [Just [" 0: abCE"],-     Just [" 1: abC"],-     Just [" 0: DE"],-     Just [" 1: D"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "(.*)\\d+\\1" []-    ["abc123abc",-     "abc123bc "]-    [Just [" 0: abc123abc"],-     Just [" 1: abc"],-     Just [" 0: bc123bc"],-     Just [" 1: bc"]]-,---testRegex "(.*)\\d+\\1" [ERROR]-    ["abc123abc",-     "abc123bc ",-     "",-     "/((.*))\\d+\\1/",-     "abc123abc",-     "abc123bc  "]-    [Just [" 0: abc123abc"],-     Just [" 1: abc"],-     Just [" 0: bc123bc"],-     Just [" 1: bc"],-     Just ["/((.*))\\d+\\1/"],-     Just [" 0: abc123abc"],-     Just [" 1: abc"],-     Just [" 2: abc"],-     Just [" 0: bc123bc"],-     Just [" 1: bc"],-     Just [" 2: bc"]]-,---testRegex "-- This tests for an IPv6 address in the form where it can have up to --" []-    ["/-- eight components, one and only one of which is empty. This must be --/",-     "/-- an internal component. --/"]-    [Just ["/-- eight components, one and only one of which is empty. This must be --/"],-     Nothing,-     Just ["/-- an internal component. --/"],-     Nothing]-,---testRegex "ERROR" []-    ["(?:                         # start of item",-     "(?: [0-9a-f]{1,4} |       # 1-4 hex digits or",-     "(?(1)0 | () ) )           # if null previously matched, fail; else null",-     ":                         # followed by colon",-     "){1,7}                      # end item; 1-7 of them required               ",-     "[0-9a-f]{1,4} $             # final hex number at end of string",-     "(?(1)|.)                    # check that there was an empty component",-     "/xi",-     "a123::a123",-     "a123:b342::abcd",-     "a123:b342::324e:abcd",-     "a123:ddde:b342::324e:abcd",-     "a123:ddde:b342::324e:dcba:abcd",-     "a123:ddde:9999:b342::324e:dcba:abcd",-     "*** Failers",-     "1:2:3:4:5:6:7:8",-     "a123:bce:ddde:9999:b342::324e:dcba:abcd",-     "a123::9999:b342::324e:dcba:abcd",-     "abcde:2:3:4:5:6:7:8",-     "::1",-     "abcd:fee0:123::   ",-     ":1",-     "1:  "]-    [Just [" 0: a123::a123"],-     Just [" 1: "],-     Just [" 0: a123:b342::abcd"],-     Just [" 1: "],-     Just [" 0: a123:b342::324e:abcd"],-     Just [" 1: "],-     Just [" 0: a123:ddde:b342::324e:abcd"],-     Just [" 1: "],-     Just [" 0: a123:ddde:b342::324e:dcba:abcd"],-     Just [" 1: "],-     Just [" 0: a123:ddde:9999:b342::324e:dcba:abcd"],-     Just [" 1: "],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,---testRegex "[z\\Qa-d]\\E]" []-    ["z",-     "a",-     "-",-     "d",-     "] ",-     "*** Failers",-     "b     "]-    [Just [" 0: z"],-     Just [" 0: a"],-     Just [" 0: -"],-     Just [" 0: d"],-     Just [" 0: ]"],-     Just [" 0: a"],-     Nothing]-,---testRegex "[\\z\\C]" []-    ["z",-     "C ",-     "",-     "/\\M/",-     "M ",-     "",-     "/(a+)*b/",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ",-     "",-     "/(?i)reg(?:ul(?:[a\228]|ae)r|ex)/",-     "REGular",-     "regulaer",-     "Regex  ",-     "regul\228r "]-    [Just [" 0: z"],-     Just [" 0: C"],-     Just ["/\\M/"],-     Just [" 0: M"],-     Just ["/(a+)*b/"],-     Nothing,-     Just ["/(?i)reg(?:ul(?:[a\228]|ae)r|ex)/"],-     Just [" 0: REGular"],-     Just [" 0: regulaer"],-     Just [" 0: Regex"],-     Just [" 0: regul\\xe4r"]]-,---testRegex "\197\230\229\228[\224-\255\192-\223]+" []-    ["\197\230\229\228\224",-     "\197\230\229\228\255",-     "\197\230\229\228\192",-     "\197\230\229\228\223"]-    [Just [" 0: \\xc5\\xe6\\xe5\\xe4\\xe0"],-     Just [" 0: \\xc5\\xe6\\xe5\\xe4\\xff"],-     Just [" 0: \\xc5\\xe6\\xe5\\xe4\\xc0"],-     Just [" 0: \\xc5\\xe6\\xe5\\xe4\\xdf"]]-,---testRegex "(?<=Z)X." []-    ["\\x84XAZXB"]-    [Just [" 0: XB"]]-,---testRegex "ab cd (?x) de fg" []-    ["ab cd defg"]-    [Just [" 0: ab cd defg"]]-,---testRegex "ab cd(?x) de fg" []-    ["ab cddefg",-     "** Failers ",-     "abcddefg"]-    [Just [" 0: ab cddefg"],-     Nothing,-     Nothing]-,---testRegex "(?<![^f]oo)(bar)" []-    ["foobarX ",-     "** Failers ",-     "boobarX"]-    [Just [" 0: bar"],-     Just [" 1: bar"],-     Nothing,-     Nothing]-,---testRegex "(?<![^f])X" []-    ["offX",-     "** Failers",-     "onyX  "]-    [Just [" 0: X"],-     Nothing,-     Nothing]-,---testRegex "(?<=[^f])X" []-    ["onyX",-     "** Failers",-     "offX "]-    [Just [" 0: X"],-     Nothing,-     Nothing]-,---testRegex "^" [ERROR]-    ["a\\nb\\nc\\n",-     "\\ ",-     "",-     "/(?<=C\\n)^/mg",-     "A\\nC\\nC\\n "]-    [Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "],-     Just ["/(?<=C\\n)^/mg"],-     Just [" 0: "]]-,---testRegex "(?:(?(1)a|b)(X))+" []-    ["bXaX"]-    [Just [" 0: bXaX"],-     Just [" 1: X"]]-,---testRegex "(?:(?(1)\\1a|b)(X|Y))+" []-    ["bXXaYYaY",-     "bXYaXXaX  "]-    [Just [" 0: bXXaYYaY"],-     Just [" 1: Y"],-     Just [" 0: bX"],-     Just [" 1: X"]]-,---testRegex "()()()()()()()()()(?:(?(10)\\10a|b)(X|Y))+" []-    ["bXXaYYaY"]-    [Just [" 0: bX"],-     Just [" 1: "],-     Just [" 2: "],-     Just [" 3: "],-     Just [" 4: "],-     Just [" 5: "],-     Just [" 6: "],-     Just [" 7: "],-     Just [" 8: "],-     Just [" 9: "],-     Just ["10: X"]]-,---testRegex "[[,abc,]+]" []-    ["abc]",-     "a,b]",-     "[a,b,c]  "]-    [Just [" 0: abc]"],-     Just [" 0: a,b]"],-     Just [" 0: [a,b,c]"]]-,---testRegex "(?-x: )" [ERROR]-    ["A\\x20B",-     "",-     "\"(?x)(?-x: \\s*#\\s*)\"",-     "A # B",-     "** Failers",-     "#  "]-    [Just [" 0:  "],-     Just ["\"(?x)(?-x: \\s*#\\s*)\""],-     Just [" 0:  # "],-     Nothing,-     Nothing]-,---testRegex "(?x-is)(?:(?-ixs) \\s*#\\s*) include" [ERROR]-    ["A #include",-     "** Failers",-     "A#include  ",-     "A #Include"]-    [Just [" 0:  #include"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "a*b*\\w" []-    ["aaabbbb",-     "aaaa",-     "a"]-    [Just [" 0: aaabbbb"],-     Just [" 0: aaaa"],-     Just [" 0: a"]]-,---testRegex "a*b?\\w" []-    ["aaabbbb",-     "aaaa",-     "a"]-    [Just [" 0: aaabb"],-     Just [" 0: aaaa"],-     Just [" 0: a"]]-,---testRegex "a*b{0,4}\\w" []-    ["aaabbbb",-     "aaaa",-     "a"]-    [Just [" 0: aaabbbb"],-     Just [" 0: aaaa"],-     Just [" 0: a"]]-,---testRegex "a*b{0,}\\w" []-    ["aaabbbb",-     "aaaa",-     "a",-     "",-     "/a*\\d*\\w/",-     "0a",-     "a ",-     "",-     "/a*b *\\w/x",-     "a "]-    [Just [" 0: aaabbbb"],-     Just [" 0: aaaa"],-     Just [" 0: a"],-     Just ["/a*\\d*\\w/"],-     Just [" 0: 0a"],-     Just [" 0: a"],-     Just ["/a*b *\\w/x"],-     Just [" 0: a"]]-,---testRegex "ERROR" []-    ["*\\w/x",-     "a "]-    [Just [" 0: a"]]-,---testRegex "a* b *\\w" [ERROR]-    ["a "]-    [Just [" 0: a"]]-,---testRegex "^\\w+=.*(\\\\\\n.*)*" []-    ["abc=xyz\\\\\\npqr"]-    [Just [" 0: abc=xyz\\"]]-,---testRegex "(?=(\\w+))\\1:" []-    ["abcd:"]-    [Just [" 0: abcd:"],-     Just [" 1: abcd"]]-,---testRegex "^(?=(\\w+))\\1:" []-    ["abcd:"]-    [Just [" 0: abcd:"],-     Just [" 1: abcd"]]-,---testRegex "^\\Eabc" []-    ["abc",-     "",-     "/^[\\Eabc]/",-     "a",-     "** Failers ",-     "E ",-     "",-     "/^[a-\\Ec]/",-     "b",-     "** Failers",-     "-",-     "E    "]-    [Just [" 0: abc"],-     Just ["/^[\\Eabc]/"],-     Just [" 0: a"],-     Nothing,-     Nothing,-     Just ["/^[a-\\Ec]/"],-     Just [" 0: b"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^[a\\E\\E-\\Ec]" []-    ["b",-     "** Failers",-     "-",-     "E    "]-    [Just [" 0: b"],-     Nothing,-     Nothing,-     Nothing]-,---testRegex "^[\\E\\Qa\\E-\\Qz\\E]+" []-    ["b",-     "** Failers",-     "-  ",-     "",-     "/^[a\\Q]bc\\E]/",-     "a",-     "]",-     "c",-     "",-     "/^[a-\\Q\\E]/",-     "a",-     "-     "]-    [Just [" 0: b"],-     Nothing,-     Nothing,-     Just ["/^[a\\Q]bc\\E]/"],-     Just [" 0: a"],-     Just [" 0: ]"],-     Just [" 0: c"],-     Just ["/^[a-\\Q\\E]/"],-     Just [" 0: a"],-     Just [" 0: -"]]-,-------testRegex "(a){0,3}(?(1)b|(c|))*D" []-    ["abbD",-     "ccccD",-     "D  "]-    [Just [" 0: abbD"],-     Just [" 1: a"],-     Just [" 0: ccccD"],-     Just [" 1: <unset>"],-     Just [" 2: "],-     Just [" 0: D"],-     Just [" 1: <unset>"],-     Just [" 2: "]]-,---testRegex "(a|)*\\d" []-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"],-     Just [" 1: "]]-,---testRegex "(?>a|)*\\d" []-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]]-,-------testRegex "( (A | (?(1)0|) )*   )" [ERROR]-    ["abcd"]-    [Just [" 0: "],-     Just [" 1: "],-     Just [" 2: "]]-,---testRegex "( ( (?(1)0|) )*   )" [ERROR]-    ["abcd"]-    [Just [" 0: "],-     Just [" 1: "],-     Just [" 2: "]]-,---testRegex "(  (?(1)0|)*   )" [ERROR]-    ["abcd"]-    [Just [" 0: "],-     Just [" 1: "]]
− tests/testdata/regex10.tests
@@ -1,558 +0,0 @@-testRegex "ERROR" []-    ["shown when the link size is 2. This is just a doublecheck test to ensure the ",-     "sizes don't go horribly wrong when something is changed. The pattern contents ",-     "are all themselves checked in other tests. --/"]-    [Just ["shown when the link size is 2. This is just a doublecheck test to ensure the "],-     Just ["sizes don't go horribly wrong when something is changed. The pattern contents "],-     Just ["are all themselves checked in other tests. --/"]]-,-testRegex "((?i)b)" [ERROR]-    []-    [Just ["Memory allocation (code space): 21"],-     Just ["------------------------------------------------------------------"],-     Just [" 10  NC b"],-     Just [" 12   9 Ket"],-     Just [" 15  00 Opt"],-     Just [" 17  17 Ket"],-     Just [" 20     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(?s)(.*X|^B)" [ERROR]-    []-    [Just ["Memory allocation (code space): 25"],-     Just ["------------------------------------------------------------------"],-     Just [" 10     X"],-     Just [" 12   6 Alt"],-     Just [" 15     ^"],-     Just [" 16     B"],-     Just [" 18  15 Ket"],-     Just [" 21  21 Ket"],-     Just [" 24     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(?s:.*X|^B)" [ERROR]-    []-    [Just ["Memory allocation (code space): 29"],-     Just ["------------------------------------------------------------------"],-     Just [" 10     X"],-     Just [" 12   8 Alt"],-     Just [" 15  04 Opt"],-     Just [" 17     ^"],-     Just [" 18     B"],-     Just [" 20  17 Ket"],-     Just [" 23  00 Opt"],-     Just [" 25  25 Ket"],-     Just [" 28     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^[[:alnum:]]" [ERROR]-    []-    [Just ["Memory allocation (code space): 41"],-     Just ["------------------------------------------------------------------"],-     Just [" 37  37 Ket"],-     Just [" 40     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "#" [ERROR]-    []-    [Just ["Memory allocation (code space): 7"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: extended"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "a#" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: extended"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "x?+" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "x++" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "x{1,3}+" [ERROR]-    []-    [Just ["Memory allocation (code space): 19"],-     Just ["------------------------------------------------------------------"],-     Just [" 12   9 Ket"],-     Just [" 15  15 Ket"],-     Just [" 18     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(x)*+" [ERROR]-    []-    [Just ["Memory allocation (code space): 24"],-     Just ["------------------------------------------------------------------"],-     Just [" 12     x"],-     Just [" 14   7 KetRmax"],-     Just [" 17  14 Ket"],-     Just [" 20  20 Ket"],-     Just [" 23     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^((a+)(?U)([ab]+)(?-U)([bc]+)(\\w*))" [ERROR]-    []-    [Just ["Memory allocation (code space): 120"],-     Just ["------------------------------------------------------------------"],-     Just [" 14     a+"],-     Just [" 16   7 Ket"],-     Just [" 19  39 CBra 3"],-     Just [" 24     [ab]+?"],-     Just [" 58  39 Ket"],-     Just [" 61  39 CBra 4"],-     Just [" 66     [bc]+"],-     Just ["100  39 Ket"],-     Just ["103   7 CBra 5"],-     Just ["108     \\w*"],-     Just ["110   7 Ket"],-     Just ["113 109 Ket"],-     Just ["116 116 Ket"],-     Just ["119     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "ERROR" []-    []-    [Just ["Memory allocation (code space): 826"],-     Just ["------------------------------------------------------------------"],-     Just ["821     \\b"],-     Just ["822 822 Ket"],-     Just ["825     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "ERROR" []-    []-    [Just ["Memory allocation (code space): 816"],-     Just ["------------------------------------------------------------------"],-     Just ["811     \\b"],-     Just ["812 812 Ket"],-     Just ["815     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(a(?1)b)" [ERROR]-    []-    [Just ["Memory allocation (code space): 28"],-     Just ["------------------------------------------------------------------"],-     Just [" 10   6 Once"],-     Just [" 13   3 Recurse"],-     Just [" 16   6 Ket"],-     Just [" 19     b"],-     Just [" 21  18 Ket"],-     Just [" 24  24 Ket"],-     Just [" 27     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(a(?1)+b)" [ERROR]-    []-    [Just ["Memory allocation (code space): 28"],-     Just ["------------------------------------------------------------------"],-     Just [" 10   6 Once"],-     Just [" 13   3 Recurse"],-     Just [" 16   6 KetRmax"],-     Just [" 19     b"],-     Just [" 21  18 Ket"],-     Just [" 24  24 Ket"],-     Just [" 27     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "a(?P<name1>b|c)d(?P<longername2>e)" [ERROR]-    []-    [Just ["Memory allocation (code space): 42"],-     Just ["------------------------------------------------------------------"],-     Just [" 10     b"],-     Just [" 12   5 Alt"],-     Just [" 15     c"],-     Just [" 17  12 Ket"],-     Just [" 20     d"],-     Just [" 22   7 CBra 2"],-     Just [" 27     e"],-     Just [" 29   7 Ket"],-     Just [" 32  32 Ket"],-     Just [" 35     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(?:a(?P<c>c(?P<d>d)))(?P<a>a)" [ERROR]-    []-    [Just ["Memory allocation (code space): 54"],-     Just ["------------------------------------------------------------------"],-     Just [" 13     c"],-     Just [" 15   7 CBra 2"],-     Just [" 20     d"],-     Just [" 22   7 Ket"],-     Just [" 25  17 Ket"],-     Just [" 28  25 Ket"],-     Just [" 31   7 CBra 3"],-     Just [" 36     a"],-     Just [" 38   7 Ket"],-     Just [" 41  41 Ket"],-     Just [" 44     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(?P<a>a)...(?P=a)bbb(?P>a)d" [ERROR]-    []-    [Just ["Memory allocation (code space): 43"],-     Just ["------------------------------------------------------------------"],-     Just [" 10   7 Ket"],-     Just [" 13     Any"],-     Just [" 14     Any"],-     Just [" 15     Any"],-     Just [" 16     \\1"],-     Just [" 19     bbb"],-     Just [" 25   6 Once"],-     Just [" 28   3 Recurse"],-     Just [" 31   6 Ket"],-     Just [" 34     d"],-     Just [" 36  36 Ket"],-     Just [" 39     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "abc(?C255)de(?C)f" [ERROR]-    []-    [Just ["Memory allocation (code space): 31"],-     Just ["------------------------------------------------------------------"],-     Just [" 15     de"],-     Just [" 19     Callout 0 16 1"],-     Just [" 25     f"],-     Just [" 27  27 Ket"],-     Just [" 30     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "abcde" [ERROR]-    []-    [Just ["Memory allocation (code space): 53"],-     Just ["------------------------------------------------------------------"],-     Just [" 11     Callout 255 1 1"],-     Just [" 17     b"],-     Just [" 19     Callout 255 2 1"],-     Just [" 25     c"],-     Just [" 27     Callout 255 3 1"],-     Just [" 33     d"],-     Just [" 35     Callout 255 4 1"],-     Just [" 41     e"],-     Just [" 43     Callout 255 5 0"],-     Just [" 49  49 Ket"],-     Just [" 52     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x{100}" [ERROR]-    []-    [Just ["Memory allocation (code space): 10"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x{1000}" [ERROR]-    []-    [Just ["Memory allocation (code space): 11"],-     Just ["------------------------------------------------------------------"],-     Just [" 10     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x{10000}" [ERROR]-    []-    [Just ["Memory allocation (code space): 12"],-     Just ["------------------------------------------------------------------"],-     Just [" 11     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x{100000}" [ERROR]-    []-    [Just ["Memory allocation (code space): 12"],-     Just ["------------------------------------------------------------------"],-     Just [" 11     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x{1000000}" [ERROR]-    []-    [Just ["Memory allocation (code space): 13"],-     Just ["------------------------------------------------------------------"],-     Just [" 12     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x{4000000}" [ERROR]-    []-    [Just ["Memory allocation (code space): 14"],-     Just ["------------------------------------------------------------------"],-     Just [" 10  10 Ket"],-     Just [" 13     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x{7fffFFFF}" [ERROR]-    []-    [Just ["Memory allocation (code space): 14"],-     Just ["------------------------------------------------------------------"],-     Just [" 10  10 Ket"],-     Just [" 13     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\x{ff}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 10"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\x{100}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 15"],-     Just ["------------------------------------------------------------------"],-     Just [" 11  11 Ket"],-     Just [" 14     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x80" [ERROR]-    []-    [Just ["Memory allocation (code space): 10"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\xff" [ERROR]-    []-    [Just ["Memory allocation (code space): 10"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x{0041}\\x{2262}\\x{0391}\\x{002e}" [ERROR]-    ["",-     "/\\x{D55c}\\x{ad6d}\\x{C5B4}/D8M "]-    [Just ["Memory allocation (code space): 18"],-     Just ["------------------------------------------------------------------"],-     Just [" 14  14 Ket"],-     Just [" 17     End"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: utf8"],-     Just ["First char = 'A'"],-     Just ["Need char = '.'"],-     Just ["/\\x{D55c}\\x{ad6d}\\x{C5B4}/D8M "],-     Just ["Memory allocation (code space): 19"],-     Just ["------------------------------------------------------------------"],-     Just [" 15  15 Ket"],-     Just [" 18     End"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: utf8"],-     Just ["First char = 237"],-     Just ["Need char = 180"]]-,-testRegex "\\x{65e5}\\x{672c}\\x{8a9e}" [ERROR]-    []-    [Just ["Memory allocation (code space): 19"],-     Just ["------------------------------------------------------------------"],-     Just [" 15  15 Ket"],-     Just [" 18     End"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: utf8"],-     Just ["First char = 230"],-     Just ["Need char = 158"]]-,-testRegex "[\\x{100}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 15"],-     Just ["------------------------------------------------------------------"],-     Just [" 11  11 Ket"],-     Just [" 14     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[Z\\x{100}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 47"],-     Just ["------------------------------------------------------------------"],-     Just [" 43  43 Ket"],-     Just [" 46     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^[\\x{100}\\E-\\Q\\E\\x{150}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 18"],-     Just ["------------------------------------------------------------------"],-     Just [" 14  14 Ket"],-     Just [" 17     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^[\\Q\196\128\\E-\\Q\197\144\\E]" [ERROR]-    []-    [Just ["Memory allocation (code space): 18"],-     Just ["------------------------------------------------------------------"],-     Just [" 14  14 Ket"],-     Just [" 17     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^[\\Q\196\128\\E-\\Q\197\144\\E" [ERROR]-    []-    [Just ["Failed: missing terminating ] for character class at offset 15"]]-,-testRegex "[\\p{L}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 15"],-     Just ["------------------------------------------------------------------"],-     Just [" 11  11 Ket"],-     Just [" 14     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\p{^L}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 15"],-     Just ["------------------------------------------------------------------"],-     Just [" 11  11 Ket"],-     Just [" 14     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\P{L}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 15"],-     Just ["------------------------------------------------------------------"],-     Just [" 11  11 Ket"],-     Just [" 14     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\P{^L}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 15"],-     Just ["------------------------------------------------------------------"],-     Just [" 11  11 Ket"],-     Just [" 14     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[abc\\p{L}\\x{0660}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 50"],-     Just ["------------------------------------------------------------------"],-     Just [" 46  46 Ket"],-     Just [" 49     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\p{Nd}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 15"],-     Just ["------------------------------------------------------------------"],-     Just [" 11  11 Ket"],-     Just [" 14     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\p{Nd}+-]+" [ERROR]-    []-    [Just ["Memory allocation (code space): 48"],-     Just ["------------------------------------------------------------------"],-     Just [" 44  44 Ket"],-     Just [" 47     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]-    []-    [Just ["Memory allocation (code space): 25"],-     Just ["------------------------------------------------------------------"],-     Just [" 21  21 Ket"],-     Just [" 24     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]-    []-    [Just ["Memory allocation (code space): 25"],-     Just ["------------------------------------------------------------------"],-     Just [" 21  21 Ket"],-     Just [" 24     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\x{105}-\\x{109}]" [ERROR]-    []-    [Just ["Memory allocation (code space): 17"],-     Just ["------------------------------------------------------------------"],-     Just [" 13  13 Ket"],-     Just [" 16     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "( ( (?(1)0|) )*   )" [ERROR]-    []-    [Just ["Memory allocation (code space): 38"],-     Just ["------------------------------------------------------------------"],-     Just [" 14   8 Cond"],-     Just [" 17   1 Cond ref"],-     Just [" 20     0"],-     Just [" 22   3 Alt"],-     Just [" 25  11 Ket"],-     Just [" 28  19 KetRmax"],-     Just [" 31  28 Ket"],-     Just [" 34  34 Ket"],-     Just [" 37     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(  (?(1)0|)*   )" [ERROR]-    []-    [Just ["Memory allocation (code space): 30"],-     Just ["------------------------------------------------------------------"],-     Just [" 12   1 Cond ref"],-     Just [" 15     0"],-     Just [" 17   3 Alt"],-     Just [" 20  11 KetRmax"],-     Just [" 23  20 Ket"],-     Just [" 26  26 Ket"],-     Just [" 29     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[a]" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[a]" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\xaa]" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\xaa]" [ERROR]-    []-    [Just ["Memory allocation (code space): 10"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^a]" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^a]" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^\\xaa]" [ERROR]-    []-    [Just ["Memory allocation (code space): 9"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^\\xaa]" [ERROR]-    []-    [Just ["Memory allocation (code space): 40"],-     Just ["------------------------------------------------------------------"],-     Just [" 36  36 Ket"],-     Just [" 39     End"],-     Just ["------------------------------------------------------------------"]]-,-testRegex " End of testinput10 " []-    []-    []
− tests/testdata/regex2.tests
@@ -1,8104 +0,0 @@-testRegex "(a)b|" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "abc" [ERROR]-    ["abc",-     "defabc",-     "\\Aabc",-     "*** Failers",-     "\\Adefabc",-     "ABC"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^abc" [ERROR]-    ["abc",-     "\\Aabc",-     "*** Failers",-     "defabc",-     "\\Adefabc"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a+bc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"]]-,-testRegex "a*bc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'c'"]]-,-testRegex "a{3}bc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"]]-,-testRegex "(abc|a+z)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "^abc$" [ERROR]-    ["abc",-     "*** Failers",-     "def\\nabc"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "ab\\idef" [ERROR]-    []-    [Just ["Failed: unrecognized character follows \\ at offset 3"]]-,-testRegex "(?X)ab\\idef" [ERROR]-    []-    [Just ["Failed: unrecognized character follows \\ at offset 7"]]-,-testRegex "x{5,4}" []-    []-    [Just ["Failed: numbers out of order in {} quantifier at offset 5"]]-,-testRegex "z{65536}" []-    []-    [Just ["Failed: number too big in {} quantifier at offset 7"]]-,-testRegex "[abcd" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 5"]]-,-testRegex "(?X)[\\B]" []-    []-    [Just ["Failed: invalid escape sequence in character class at offset 6"]]-,-testRegex "[z-a]" []-    []-    [Just ["Failed: range out of order in character class at offset 3"]]-,-testRegex "^*" []-    []-    [Just ["Failed: nothing to repeat at offset 1"]]-,-testRegex "(abc" []-    []-    [Just ["Failed: missing ) at offset 4"]]-,-testRegex "(?# abc" []-    []-    [Just ["Failed: missing ) after comment at offset 7"]]-,-testRegex "(?z)abc" []-    []-    [Just ["Failed: unrecognized character after (? at offset 2"]]-,-testRegex ".*b" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'b'"]]-,-testRegex ".*?b" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'b'"]]-,-testRegex "cat|dog|elephant" [ERROR]-    ["this sentence eventually mentions a cat",-     "this sentences rambles on and on for a while and then reaches elephant"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: cat"],-     Just [" 0: elephant"]]-,-testRegex "cat|dog|elephant" [ERROR]-    ["this sentence eventually mentions a cat",-     "this sentences rambles on and on for a while and then reaches elephant"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: c d e "],-     Just [" 0: cat"],-     Just [" 0: elephant"]]-,-testRegex "cat|dog|elephant" [ERROR]-    ["this sentence eventually mentions a CAT cat",-     "this sentences rambles on and on for a while to elephant ElePhant"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: C D E c d e "],-     Just [" 0: CAT"],-     Just [" 0: elephant"]]-,-testRegex "a|[bcd]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b c d "]]-,-testRegex "(a|[^\\dZ])" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: \\x00 \\x01 \\x02 \\x03 \\x04 \\x05 \\x06 \\x07 \\x08 \\x09 \\x0a "]]-,-testRegex "(a|b)*[\\s]" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: \\x09 \\x0a \\x0c \\x0d \\x20 a b "]]-,-testRegex "(ab\\2)" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 6"]]-,-testRegex "{4,5}abc" []-    []-    [Just ["Failed: nothing to repeat at offset 4"]]-,-testRegex "(a)(b)(c)\\2" [ERROR]-    ["abcb",-     "\\O0abcb",-     "\\O3abcb",-     "\\O6abcb",-     "\\O9abcb",-     "\\O12abcb"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Max back reference = 2"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just [" 0: abcb"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 3: c"],-     Just ["Matched, but too many substrings"],-     Just ["Matched, but too many substrings"],-     Just [" 0: abcb"],-     Just ["Matched, but too many substrings"],-     Just [" 0: abcb"],-     Just [" 1: a"],-     Just ["Matched, but too many substrings"],-     Just [" 0: abcb"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 0: abcb"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 3: c"]]-,-testRegex "(a)bc|(a)(b)\\2" [ERROR]-    ["abc",-     "\\O0abc",-     "\\O3abc",-     "\\O6abc",-     "aba",-     "\\O0aba",-     "\\O3aba",-     "\\O6aba",-     "\\O9aba",-     "\\O12aba"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Max back reference = 2"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"],-     Just [" 0: abc"],-     Just [" 1: a"],-     Just ["Matched, but too many substrings"],-     Just ["Matched, but too many substrings"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 1: a"],-     Just [" 0: aba"],-     Just [" 1: <unset>"],-     Just [" 2: a"],-     Just [" 3: b"],-     Just ["Matched, but too many substrings"],-     Just ["Matched, but too many substrings"],-     Just [" 0: aba"],-     Just ["Matched, but too many substrings"],-     Just [" 0: aba"],-     Just [" 1: <unset>"],-     Just ["Matched, but too many substrings"],-     Just [" 0: aba"],-     Just [" 1: <unset>"],-     Just [" 2: a"],-     Just [" 0: aba"],-     Just [" 1: <unset>"],-     Just [" 2: a"],-     Just [" 3: b"]]-,-testRegex "abc$" [ERROR]-    ["abc",-     "*** Failers",-     "abc\\n",-     "abc\\ndef"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: dollar_endonly"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(a)(b)(c)(d)(e)\\6" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 17"]]-,-testRegex "the quick brown fox" [ERROR]-    ["the quick brown fox",-     "this is a line with the quick brown fox"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 't'"],-     Just ["Need char = 'x'"],-     Just [" 0: the quick brown fox"],-     Just [" 0: the quick brown fox"]]-,-testRegex "the quick brown fox" [ERROR]-    ["the quick brown fox",-     "*** Failers",-     "this is a line with the quick brown fox"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: the quick brown fox"],-     Nothing,-     Nothing]-,-testRegex "ab(?z)cd" []-    []-    [Just ["Failed: unrecognized character after (? at offset 4"]]-,-testRegex "^abc|def" [ERROR]-    ["abcdef",-     "abcdef\\B"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abc"],-     Just [" 0: def"]]-,-testRegex ".*((abc)$|(def))" [ERROR]-    ["defabc",-     "\\Zdefabc"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["No need char"],-     Just [" 0: defabc"],-     Just [" 1: abc"],-     Just [" 2: abc"],-     Just [" 0: def"],-     Just [" 1: def"],-     Just [" 2: <unset>"],-     Just [" 3: def"]]-,-testRegex "abc" [ERROR]-    ["abc",-     "*** Failers"]-    [Just [" 0: abc"],-     Just ["No match: POSIX code 17: match failed"]]-,-testRegex "^abc|def" [ERROR]-    ["abcdef",-     "abcdef\\B"]-    [Just [" 0: abc"],-     Just [" 0: def"]]-,-testRegex ".*((abc)$|(def))" [ERROR]-    ["defabc",-     "\\Zdefabc"]-    [Just [" 0: defabc"],-     Just [" 1: abc"],-     Just [" 2: abc"],-     Just [" 0: def"],-     Just [" 1: def"],-     Just [" 3: def"]]-,-testRegex "the quick brown fox" [ERROR]-    ["the quick brown fox",-     "*** Failers",-     "The Quick Brown Fox"]-    [Just [" 0: the quick brown fox"],-     Just ["No match: POSIX code 17: match failed"],-     Just ["No match: POSIX code 17: match failed"]]-,-testRegex "the quick brown fox" [caseless]-    ["the quick brown fox",-     "The Quick Brown Fox"]-    [Just [" 0: the quick brown fox"],-     Just [" 0: The Quick Brown Fox"]]-,-testRegex "abc.def" [ERROR]-    ["*** Failers",-     "abc\\ndef"]-    [Just ["No match: POSIX code 17: match failed"],-     Just ["No match: POSIX code 17: match failed"]]-,-testRegex "abc$" [ERROR]-    ["abc",-     "abc\\n"]-    [Just [" 0: abc"],-     Just [" 0: abc"]]-,-testRegex "(abc)\\2" [ERROR]-    []-    [Just ["Failed: POSIX code 15: bad back reference at offset 7     "]]-,-testRegex "(abc\\1)" [ERROR]-    ["abc"]-    [Just ["No match: POSIX code 17: match failed"]]-,-testRegex ")" []-    []-    [Just ["Failed: unmatched parentheses at offset 0"]]-,-testRegex "a[]b" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 4"]]-,-testRegex "[^aeiou ]{3,}" [ERROR]-    ["co-processors, and for"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: -pr"]]-,-testRegex "<.*>" [ERROR]-    ["abc<def>ghi<klm>nop"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = '<'"],-     Just ["Need char = '>'"],-     Just [" 0: <def>ghi<klm>"]]-,-testRegex "<.*?>" [ERROR]-    ["abc<def>ghi<klm>nop"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = '<'"],-     Just ["Need char = '>'"],-     Just [" 0: <def>"]]-,-testRegex "<.*>" [ERROR]-    ["abc<def>ghi<klm>nop"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: ungreedy"],-     Just ["First char = '<'"],-     Just ["Need char = '>'"],-     Just [" 0: <def>"]]-,-testRegex "(?U)<.*>" [ERROR]-    ["abc<def>ghi<klm>nop"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: ungreedy"],-     Just ["First char = '<'"],-     Just ["Need char = '>'"],-     Just [" 0: <def>"]]-,-testRegex "<.*?>" [ERROR]-    ["abc<def>ghi<klm>nop"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: ungreedy"],-     Just ["First char = '<'"],-     Just ["Need char = '>'"],-     Just [" 0: <def>ghi<klm>"]]-,-testRegex "={3,}" [ERROR]-    ["abc========def"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: ungreedy"],-     Just ["First char = '='"],-     Just ["Need char = '='"],-     Just [" 0: ==="]]-,-testRegex "(?U)={3,}?" [ERROR]-    ["abc========def"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: ungreedy"],-     Just ["First char = '='"],-     Just ["Need char = '='"],-     Just [" 0: ========"]]-,-testRegex "(?<!bar|cattle)foo" [ERROR]-    ["foo",-     "catfoo",-     "*** Failers",-     "the barfoo",-     "and cattlefoo"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'f'"],-     Just ["Need char = 'o'"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<=a+)b" []-    []-    [Just ["Failed: lookbehind assertion is not fixed length at offset 6"]]-,-testRegex "(?<=aaa|b{0,3})b" []-    []-    [Just ["Failed: lookbehind assertion is not fixed length at offset 14"]]-,-testRegex "(?<!(foo)a\\1)bar" []-    []-    [Just ["Failed: lookbehind assertion is not fixed length at offset 12"]]-,-testRegex "(?i)abc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless"],-     Just ["First char = 'a' (caseless)"],-     Just ["Need char = 'c' (caseless)"]]-,-testRegex "(a|(?m)a)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "(?i)^1234" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored caseless"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(^b|(?i)^d)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(?s).*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[abcd]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b c d "]]-,-testRegex "(?i)[abcd]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: A B C D a b c d "]]-,-testRegex "(?m)[xy]|(b|c)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: multiline"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: b c x y "]]-,-testRegex "(^a|^b)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: multiline"],-     Just ["First char at start or follows newline"],-     Just ["No need char"]]-,-testRegex "(?i)(^a|^b)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: caseless multiline"],-     Just ["First char at start or follows newline"],-     Just ["No need char"]]-,-testRegex "(a)(?(1)a|b|c)" []-    []-    [Just ["Failed: conditional group contains more than two branches at offset 13"]]-,-testRegex "(?(?=a)a|b|c)" []-    []-    [Just ["Failed: conditional group contains more than two branches at offset 12"]]-,-testRegex "(?(1a)" []-    []-    [Just ["Failed: missing ) at offset 6"]]-,-testRegex "(?(1a))" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 6"]]-,-testRegex "(?(?i))" []-    []-    [Just ["Failed: assertion expected after (?( at offset 3"]]-,-testRegex "(?(abc))" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 7"]]-,-testRegex "(?(?<ab))" []-    []-    [Just ["Failed: syntax error in subpattern name (missing terminator) at offset 7"]]-,-testRegex "((?s)blah)\\s+\\1" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'b'"],-     Just ["Need char = 'h'"]]-,-testRegex "((?i)blah)\\s+\\1" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'b' (caseless)"],-     Just ["Need char = 'h' (caseless)"]]-,-testRegex "((?i)b)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'b' (caseless)"],-     Just ["No need char"],-     Just ["Study returned NULL"]]-,-testRegex "(a*b|(?i:c*(?-i)d))" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: C a b c d "]]-,-testRegex "a$" [ERROR]-    ["a",-     "a\\n",-     "*** Failers",-     "\\Za",-     "\\Za\\n"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"],-     Just [" 0: a"],-     Just [" 0: a"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a$" [ERROR]-    ["a",-     "a\\n",-     "\\Za\\n",-     "*** Failers",-     "\\Za"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["First char = 'a'"],-     Just ["No need char"],-     Just [" 0: a"],-     Just [" 0: a"],-     Just [" 0: a"],-     Nothing,-     Nothing]-,-testRegex "\\Aabc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored multiline"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^abc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'c'"]]-,-testRegex "^((a+)(?U)([ab]+)(?-U)([bc]+)(\\w*))" [ERROR]-    ["aaaaabbbbbcccccdef"]-    [Just ["Capturing subpattern count = 5"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aaaaabbbbbcccccdef"],-     Just [" 1: aaaaabbbbbcccccdef"],-     Just [" 2: aaaaa"],-     Just [" 3: b"],-     Just [" 4: bbbbccccc"],-     Just [" 5: def"]]-,-testRegex "(?<=foo)[ab]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b "]]-,-testRegex "(?<!foo)(alpha|omega)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'a'"],-     Just ["Starting byte set: a o "]]-,-testRegex "(?!alphabet)[ab]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b "]]-,-testRegex "(?<=foo\\n)^bar" [ERROR]-    ["foo\\nbarbar",-     "***Failers",-     "rhubarb",-     "barbell",-     "abc\\nbarton"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Contains explicit CR or LF match"],-     Just ["Options: multiline"],-     Just ["No first char"],-     Just ["Need char = 'r'"],-     Just [" 0: bar"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(?<=foo\\n)bar" [ERROR]-    ["foo\\nbarbar",-     "***Failers",-     "rhubarb",-     "barbell",-     "abc\\nbarton"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Contains explicit CR or LF match"],-     Just ["Options: multiline"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'r'"],-     Just [" 0: bar"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?>^abc)" [ERROR]-    ["abc",-     "def\\nabc",-     "*** Failers",-     "defabc"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "(?<=ab(c+)d)ef" []-    []-    [Just ["Failed: lookbehind assertion is not fixed length at offset 11"]]-,-testRegex "(?<=ab(?<=c+)d)ef" []-    []-    [Just ["Failed: lookbehind assertion is not fixed length at offset 12"]]-,-testRegex "(?<=ab(c|de)f)g" []-    []-    [Just ["Failed: lookbehind assertion is not fixed length at offset 13"]]-,-testRegex "The next three are in testinput2 because they have variable length branches" []-    []-    []-,-testRegex "(?<=bullock|donkey)-cart" [ERROR]-    ["the bullock-cart",-     "a donkey-cart race",-     "*** Failers",-     "cart",-     "horse-and-cart"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = '-'"],-     Just ["Need char = 't'"],-     Just [" 0: -cart"],-     Just [" 0: -cart"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<=ab(?i)x|y|z)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(?>.*)(?<=(abcd)|(xyz))" [ERROR]-    ["alphabetabcd",-     "endingxyz"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["No need char"],-     Just [" 0: alphabetabcd"],-     Just [" 1: abcd"],-     Just [" 0: endingxyz"],-     Just [" 1: <unset>"],-     Just [" 2: xyz"]]-,-testRegex "(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ" [ERROR]-    ["abxyZZ",-     "abXyZZ",-     "ZZZ",-     "zZZ",-     "bZZ",-     "BZZ",-     "*** Failers",-     "ZZ",-     "abXYZZ",-     "zzz",-     "bzz"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'Z'"],-     Just ["Need char = 'Z'"],-     Just [" 0: ZZ"],-     Just [" 0: ZZ"],-     Just [" 0: ZZ"],-     Just [" 0: ZZ"],-     Just [" 0: ZZ"],-     Just [" 0: ZZ"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<!(foo)a)bar" [ERROR]-    ["bar",-     "foobbar",-     "*** Failers",-     "fooabar"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'b'"],-     Just ["Need char = 'r'"],-     Just [" 0: bar"],-     Just [" 0: bar"],-     Nothing,-     Nothing]-,-testRegex "This one is here because Perl 5.005_02 doesn't fail it" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'T'"],-     Just ["Need char = 't'"]]-,-testRegex "^(a)?(?(1)a|b)+$" [ERROR]-    ["*** Failers",-     "a"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Nothing,-     Nothing]-,-testRegex "This one is here because I think Perl 5.005_02 gets the setting of $1 wrong" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'T'"],-     Just ["Need char = 'g'"]]-,-testRegex "^(a\\1?){4}$" [ERROR]-    ["aaaaaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aaaaaa"],-     Just [" 1: aa"]]-,-testRegex "These are syntax tests from Perl 5.005" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'T'"],-     Just ["Need char = '5'"]]-,-testRegex "a[b-a]" []-    []-    [Just ["Failed: range out of order in character class at offset 4"]]-,-testRegex "a[]b" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 4"]]-,-testRegex "a[" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 2"]]-,-testRegex "*a" []-    []-    [Just ["Failed: nothing to repeat at offset 0"]]-,-testRegex "(*)b" []-    []-    [Just ["Failed: nothing to repeat at offset 1"]]-,-testRegex "abc)" []-    []-    [Just ["Failed: unmatched parentheses at offset 3"]]-,-testRegex "(abc" []-    []-    [Just ["Failed: missing ) at offset 4"]]-,-testRegex "a**" []-    []-    [Just ["Failed: nothing to repeat at offset 2"]]-,-testRegex ")(" []-    []-    [Just ["Failed: unmatched parentheses at offset 0"]]-,-testRegex "\\1" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 2"]]-,-testRegex "\\2" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 2"]]-,-testRegex "(a)|\\2" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 6"]]-,-testRegex "a[b-a]" [caseless]-    []-    [Just ["Failed: range out of order in character class at offset 4"]]-,-testRegex "a[]b" [caseless]-    []-    [Just ["Failed: missing terminating ] for character class at offset 4"]]-,-testRegex "a[" [caseless]-    []-    [Just ["Failed: missing terminating ] for character class at offset 2"]]-,-testRegex "*a" [caseless]-    []-    [Just ["Failed: nothing to repeat at offset 0"]]-,-testRegex "(*)b" [caseless]-    []-    [Just ["Failed: nothing to repeat at offset 1"]]-,-testRegex "abc)" [caseless]-    []-    [Just ["Failed: unmatched parentheses at offset 3"]]-,-testRegex "(abc" [caseless]-    []-    [Just ["Failed: missing ) at offset 4"]]-,-testRegex "a**" [caseless]-    []-    [Just ["Failed: nothing to repeat at offset 2"]]-,-testRegex ")(" [caseless]-    []-    [Just ["Failed: unmatched parentheses at offset 0"]]-,-testRegex ":(?:" []-    []-    [Just ["Failed: missing ) at offset 4"]]-,-testRegex "(?<%)b" []-    []-    [Just ["Failed: unrecognized character after (?< at offset 3"]]-,-testRegex "a(?{)b" []-    []-    [Just ["Failed: unrecognized character after (? at offset 3"]]-,-testRegex "a(?{{})b" []-    []-    [Just ["Failed: unrecognized character after (? at offset 3"]]-,-testRegex "a(?{}})b" []-    []-    [Just ["Failed: unrecognized character after (? at offset 3"]]-,-testRegex "a(?{\"{\"})b" []-    []-    [Just ["Failed: unrecognized character after (? at offset 3"]]-,-testRegex "a(?{\"{\"}})b" []-    []-    [Just ["Failed: unrecognized character after (? at offset 3"]]-,-testRegex "(?(1?)a|b)" []-    []-    [Just ["Failed: malformed number or name after (?( at offset 4"]]-,-testRegex "(?(1)a|b|c)" []-    []-    [Just ["Failed: conditional group contains more than two branches at offset 10"]]-,-testRegex "[a[:xyz:" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 8"]]-,-testRegex "(?<=x+)y" []-    []-    [Just ["Failed: lookbehind assertion is not fixed length at offset 6"]]-,-testRegex "a{37,17}" []-    []-    [Just ["Failed: numbers out of order in {} quantifier at offset 7"]]-,-testRegex "abc" [ERROR]-    []-    [Just ["Failed: \\ at end of pattern at offset 4"]]-,-testRegex "abc" [ERROR]-    []-    [Just ["Failed: POSIX code 9: bad escape sequence at offset 4     "]]-,-testRegex "abc" [caseless]-    []-    [Just ["Failed: \\ at end of pattern at offset 4"]]-,-testRegex "(a)bc(d)" [ERROR]-    ["abcd",-     "abcd\\C2",-     "abcd\\C5"]-    [Just ["Capturing subpattern count = 2"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'd'"],-     Just [" 0: abcd"],-     Just [" 1: a"],-     Just [" 2: d"],-     Just [" 0: abcd"],-     Just [" 1: a"],-     Just [" 2: d"],-     Just [" 2C d (1)"],-     Just [" 0: abcd"],-     Just [" 1: a"],-     Just [" 2: d"],-     Just ["copy substring 5 failed -7"]]-,-testRegex "(.{20})" [ERROR]-    ["abcdefghijklmnopqrstuvwxyz",-     "abcdefghijklmnopqrstuvwxyz\\C1",-     "abcdefghijklmnopqrstuvwxyz\\G1"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abcdefghijklmnopqrst"],-     Just [" 1: abcdefghijklmnopqrst"],-     Just [" 0: abcdefghijklmnopqrst"],-     Just [" 1: abcdefghijklmnopqrst"],-     Just [" 1C abcdefghijklmnopqrst (20)"],-     Just [" 0: abcdefghijklmnopqrst"],-     Just [" 1: abcdefghijklmnopqrst"],-     Just [" 1G abcdefghijklmnopqrst (20)"]]-,-testRegex "(.{15})" [ERROR]-    ["abcdefghijklmnopqrstuvwxyz",-     "abcdefghijklmnopqrstuvwxyz\\C1\\G1"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abcdefghijklmno"],-     Just [" 1: abcdefghijklmno"],-     Just [" 0: abcdefghijklmno"],-     Just [" 1: abcdefghijklmno"],-     Just [" 1C abcdefghijklmno (15)"],-     Just [" 1G abcdefghijklmno (15)"]]-,-testRegex "(.{16})" [ERROR]-    ["abcdefghijklmnopqrstuvwxyz",-     "abcdefghijklmnopqrstuvwxyz\\C1\\G1\\L"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abcdefghijklmnop"],-     Just [" 1: abcdefghijklmnop"],-     Just [" 0: abcdefghijklmnop"],-     Just [" 1: abcdefghijklmnop"],-     Just [" 1C abcdefghijklmnop (16)"],-     Just [" 1G abcdefghijklmnop (16)"],-     Just [" 0L abcdefghijklmnop"],-     Just [" 1L abcdefghijklmnop"]]-,-testRegex "^(a|(bc))de(f)" [ERROR]-    ["adef\\G1\\G2\\G3\\G4\\L",-     "bcdef\\G1\\G2\\G3\\G4\\L",-     "adefghijk\\C0"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: adef"],-     Just [" 1: a"],-     Just [" 2: <unset>"],-     Just [" 3: f"],-     Just [" 1G a (1)"],-     Just [" 2G  (0)"],-     Just [" 3G f (1)"],-     Just ["get substring 4 failed -7"],-     Just [" 0L adef"],-     Just [" 1L a"],-     Just [" 2L "],-     Just [" 3L f"],-     Just [" 0: bcdef"],-     Just [" 1: bc"],-     Just [" 2: bc"],-     Just [" 3: f"],-     Just [" 1G bc (2)"],-     Just [" 2G bc (2)"],-     Just [" 3G f (1)"],-     Just ["get substring 4 failed -7"],-     Just [" 0L bcdef"],-     Just [" 1L bc"],-     Just [" 2L bc"],-     Just [" 3L f"],-     Just [" 0: adef"],-     Just [" 1: a"],-     Just [" 2: <unset>"],-     Just [" 3: f"],-     Just [" 0C adef (4)"]]-,-testRegex "^abc\\00def" [ERROR]-    ["abc\\00def\\L\\C0"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abc\\x00def"],-     Just [" 0C abc (7)"],-     Just [" 0L abc"]]-,-testRegex "ERROR" []-    [")((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+",-     ")?)?)?)?)?)?)?)?)?otherword/I"]-    [Just [")((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+"],-     Just [")?)?)?)?)?)?)?)?)?otherword/I"],-     Just ["Capturing subpattern count = 8"],-     Just ["Partial matching not supported"],-     Just ["Contains explicit CR or LF match"],-     Just ["No options"],-     Just ["First char = 'w'"],-     Just ["Need char = 'd'"]]-,-testRegex ".*X" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'X'"]]-,-testRegex ".*X" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["Need char = 'X'"]]-,-testRegex "(.*X|^B)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["No need char"]]-,-testRegex "(.*X|^B)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(?s)(.*X|^B)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(?s:.*X|^B)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["No need char"]]-,-testRegex "\\Biss\\B" [ERROR]-    ["Mississippi"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'i'"],-     Just ["Need char = 's'"],-     Just [" 0: iss"],-     Just [" 0+ issippi"]]-,-testRegex "\\Biss\\B" [ERROR]-    ["Mississippi"]-    [Just [" 0: iss"],-     Just [" 0+ issippi"]]-,-testRegex "iss" [ERROR]-    ["Mississippi"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'i'"],-     Just ["Need char = 's'"],-     Just [" 0: iss"],-     Just [" 0+ issippi"],-     Just [" 0: iss"],-     Just [" 0+ ippi"]]-,-testRegex "\\Biss\\B" [ERROR]-    ["Mississippi"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'i'"],-     Just ["Need char = 's'"],-     Just [" 0: iss"],-     Just [" 0+ issippi"]]-,-testRegex "\\Biss\\B" [ERROR]-    ["Mississippi",-     "*** Failers",-     "Mississippi\\A"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'i'"],-     Just ["Need char = 's'"],-     Just [" 0: iss"],-     Just [" 0+ issippi"],-     Just [" 0: iss"],-     Just [" 0+ ippi"],-     Nothing,-     Nothing]-,-testRegex "(?<=[Ms])iss" [ERROR]-    ["Mississippi"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'i'"],-     Just ["Need char = 's'"],-     Just [" 0: iss"],-     Just [" 0+ issippi"],-     Just [" 0: iss"],-     Just [" 0+ ippi"]]-,-testRegex "(?<=[Ms])iss" [ERROR]-    ["Mississippi"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'i'"],-     Just ["Need char = 's'"],-     Just [" 0: iss"],-     Just [" 0+ issippi"]]-,-testRegex "^iss" [ERROR]-    ["ississippi"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: iss"],-     Just [" 0+ issippi"]]-,-testRegex ".*iss" [ERROR]-    ["abciss\\nxyzisspqr"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 's'"],-     Just [" 0: abciss"],-     Just [" 0+ \\x0axyzisspqr"],-     Just [" 0: xyziss"],-     Just [" 0+ pqr"]]-,-testRegex ".i." [ERROR]-    ["Mississippi",-     "Mississippi\\A",-     "Missouri river",-     "Missouri river\\A"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'i'"],-     Just [" 0: Mis"],-     Just [" 0+ sissippi"],-     Just [" 0: sis"],-     Just [" 0+ sippi"],-     Just [" 0: sip"],-     Just [" 0+ pi"],-     Just [" 0: Mis"],-     Just [" 0+ sissippi"],-     Just [" 0: sis"],-     Just [" 0+ sippi"],-     Just [" 0: sip"],-     Just [" 0+ pi"],-     Just [" 0: Mis"],-     Just [" 0+ souri river"],-     Just [" 0: ri "],-     Just [" 0+ river"],-     Just [" 0: riv"],-     Just [" 0+ er"],-     Just [" 0: Mis"],-     Just [" 0+ souri river"]]-,-testRegex "^.is" [ERROR]-    ["Mississippi"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: Mis"],-     Just [" 0+ sissippi"]]-,-testRegex "^ab\\n" [ERROR]-    ["ab\\nab\\ncd"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Contains explicit CR or LF match"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: ab\\x0a"],-     Just [" 0+ ab\\x0acd"]]-,-testRegex "^ab\\n" [ERROR]-    ["ab\\nab\\ncd"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Contains explicit CR or LF match"],-     Just ["Options: multiline"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 10"],-     Just [" 0: ab\\x0a"],-     Just [" 0+ ab\\x0acd"],-     Just [" 0: ab\\x0a"],-     Just [" 0+ cd"]]-,-testRegex "abc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"]]-,-testRegex "abc|bac" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'c'"]]-,-testRegex "(abc|bac)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'c'"]]-,-testRegex "(abc|(c|dc))" [ERROR]-    []-    [Just ["Capturing subpattern count = 2"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'c'"]]-,-testRegex "(abc|(d|de)c)" [ERROR]-    []-    [Just ["Capturing subpattern count = 2"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'c'"]]-,-testRegex "a*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "a+" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "(baa|a+)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'a'"]]-,-testRegex "a{0,3}" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "baa{3,}" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'b'"],-     Just ["Need char = 'a'"]]-,-testRegex "\"([^\\\\\"]+|\\\\.)*\"" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = '\"'"],-     Just ["Need char = '\"'"]]-,-testRegex "(abc|ab[cd])" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "(a|.)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "a|ba|\\w" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "abc(?=pqr)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'r'"]]-,-testRegex "...(?<=abc)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "abc(?!pqr)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"]]-,-testRegex "ab." [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "ab[xyz]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "abc*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "ab.c*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "a.c*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex ".c*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "ac*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "(a.c*|b.c*)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "a.c*|aba" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex ".+a" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'a'"]]-,-testRegex "(?=abcda)a.*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'a'"]]-,-testRegex "(?=a)a.*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "a(b)*" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "a\\d*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "ab\\d*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "a(\\d)*" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "abcde{0,0}" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'd'"]]-,-testRegex "ab\\d+" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "a(?(1)b)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "a(?(1)bag|big)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'g'"]]-,-testRegex "a(?(1)bag|big)*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "a(?(1)bag|big)+" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'g'"]]-,-testRegex "a(?(1)b..|b..)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "ab\\d{0}e" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'e'"]]-,-testRegex "a?b?" [ERROR]-    ["a",-     "b",-     "ab",-     "\\",-     "*** Failers",-     "\\N"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: a"],-     Just [" 0: b"],-     Just [" 0: ab"],-     Just [" 0: "],-     Just [" 0: "],-     Nothing]-,-testRegex "|-" [ERROR]-    ["abcd",-     "-abc",-     "\\Nab-c",-     "*** Failers",-     "\\Nabc"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: -"],-     Just [" 0: "],-     Nothing]-,-testRegex "a*(b+)(z)(z)" [ERROR]-    ["aaaabbbbzzzz",-     "aaaabbbbzzzz\\O0",-     "aaaabbbbzzzz\\O1",-     "aaaabbbbzzzz\\O2",-     "aaaabbbbzzzz\\O3",-     "aaaabbbbzzzz\\O4",-     "aaaabbbbzzzz\\O5"]-    [Just [" 0: aaaabbbbzz"],-     Just [" 1: bbbb"],-     Just [" 2: z"],-     Just [" 3: z"],-     Just [" 0: aaaabbbbzz"],-     Just [" 0: aaaabbbbzz"],-     Just [" 1: bbbb"],-     Just [" 0: aaaabbbbzz"],-     Just [" 1: bbbb"],-     Just [" 2: z"],-     Just [" 0: aaaabbbbzz"],-     Just [" 1: bbbb"],-     Just [" 2: z"],-     Just [" 3: z"],-     Just [" 0: aaaabbbbzz"],-     Just [" 1: bbbb"],-     Just [" 2: z"],-     Just [" 3: z"]]-,-testRegex "^.?abcd" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = 'd'"],-     Just ["Study returned NULL"]]-,-testRegex "ERROR" []-    ["(?:           # Non-capturing bracket",-     "(?>[^()]+)    # Either a sequence of non-brackets (no backtracking)",-     "|             # Or",-     "(?R)          # Recurse - i.e. nested bracketed string",-     ")*            # Zero or more contents",-     "\\)            # Closing )",-     "/Ix",-     "(abcd)",-     "(abcd)xyz",-     "xyz(abcd)",-     "(ab(xy)cd)pqr",-     "(ab(xycd)pqr",-     "() abc ()",-     "12(abcde(fsh)xyz(foo(bar))lmno)89",-     "*** Failers",-     "abcd",-     "abcd)",-     "(abcd"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (abcd)"],-     Just [" 0: (abcd)"],-     Just [" 0: (abcd)"],-     Just [" 0: (ab(xy)cd)"],-     Just [" 0: (xycd)"],-     Just [" 0: ()"],-     Just [" 0: (abcde(fsh)xyz(foo(bar))lmno)"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\(  ( (?>[^()]+) | (?R) )* \\) " [ERROR]-    ["(ab(xy)cd)pqr",-     "1(abcd)(x(y)z)pqr"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (ab(xy)cd)"],-     Just [" 1: cd"],-     Just [" 0: (abcd)"],-     Just [" 1: abcd"],-     Just [" 0: (x(y)z)"],-     Just [" 1: z"]]-,-testRegex "\\(  (?: (?>[^()]+) | (?R) ) \\) " [ERROR]-    ["(abcd)",-     "(ab(xy)cd)",-     "(a(b(c)d)e)",-     "((ab))",-     "*** Failers",-     "()"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (abcd)"],-     Just [" 0: (xy)"],-     Just [" 0: (c)"],-     Just [" 0: ((ab))"],-     Nothing,-     Nothing]-,-testRegex "\\(  (?: (?>[^()]+) | (?R) )? \\) " [ERROR]-    ["()",-     "12(abcde(fsh)xyz(foo(bar))lmno)89"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: ()"],-     Just [" 0: (fsh)"]]-,-testRegex "\\(  ( (?>[^()]+) | (?R) )* \\) " [ERROR]-    ["(ab(xy)cd)"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (ab(xy)cd)"],-     Just [" 1: cd"]]-,-testRegex "\\( ( ( (?>[^()]+) | (?R) )* ) \\) " [ERROR]-    ["(ab(xy)cd)"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (ab(xy)cd)"],-     Just [" 1: ab(xy)cd"],-     Just [" 2: cd"]]-,-testRegex "\\( (123)? ( ( (?>[^()]+) | (?R) )* ) \\) " [ERROR]-    ["(ab(xy)cd)",-     "(123ab(xy)cd)"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (ab(xy)cd)"],-     Just [" 1: <unset>"],-     Just [" 2: ab(xy)cd"],-     Just [" 3: cd"],-     Just [" 0: (123ab(xy)cd)"],-     Just [" 1: 123"],-     Just [" 2: ab(xy)cd"],-     Just [" 3: cd"]]-,-testRegex "\\( ( (123)? ( (?>[^()]+) | (?R) )* ) \\) " [ERROR]-    ["(ab(xy)cd)",-     "(123ab(xy)cd)"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (ab(xy)cd)"],-     Just [" 1: ab(xy)cd"],-     Just [" 2: <unset>"],-     Just [" 3: cd"],-     Just [" 0: (123ab(xy)cd)"],-     Just [" 1: 123ab(xy)cd"],-     Just [" 2: 123"],-     Just [" 3: cd"]]-,-testRegex "\\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \\) " [ERROR]-    ["(ab(xy)cd)"]-    [Just ["Capturing subpattern count = 11"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (ab(xy)cd)"],-     Just [" 1: ab(xy)cd"],-     Just [" 2: ab(xy)cd"],-     Just [" 3: ab(xy)cd"],-     Just [" 4: ab(xy)cd"],-     Just [" 5: ab(xy)cd"],-     Just [" 6: ab(xy)cd"],-     Just [" 7: ab(xy)cd"],-     Just [" 8: ab(xy)cd"],-     Just [" 9: ab(xy)cd"],-     Just ["10: ab(xy)cd"],-     Just ["11: cd"]]-,-testRegex "\\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \\) " [ERROR]-    ["(abcd(xyz<p>qrs)123)"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (abcd(xyz<p>qrs)123)"],-     Just [" 1: abcd(xyz<p>qrs)123"],-     Just [" 2: 123"],-     Just [" 3: <unset>"]]-,-testRegex "\\( ( ( (?>[^()]+) | ((?R)) )* ) \\) " [ERROR]-    ["(ab(cd)ef)",-     "(ab(cd(ef)gh)ij)"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (ab(cd)ef)"],-     Just [" 1: ab(cd)ef"],-     Just [" 2: ef"],-     Just [" 3: (cd)"],-     Just [" 0: (ab(cd(ef)gh)ij)"],-     Just [" 1: ab(cd(ef)gh)ij"],-     Just [" 2: ij"],-     Just [" 3: (cd(ef)gh)"]]-,-testRegex "^[[:alnum:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:^alnum:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:alpha:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:^alpha:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[_[:alpha:]]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z "]]-,-testRegex "^[[:ascii:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:^ascii:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:blank:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:^blank:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[\\n\\x0b\\x0c\\x0d[:blank:]]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Contains explicit CR or LF match"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: \\x09 \\x0a \\x0b \\x0c \\x0d \\x20 "]]-,-testRegex "^[[:cntrl:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:digit:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:graph:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:lower:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:print:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:punct:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:space:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:upper:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:xdigit:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:word:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:^cntrl:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[12[:^digit:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^[[:^blank:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[01[:alpha:]%]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[[.ch.]]" [ERROR]-    []-    [Just ["Failed: POSIX collating elements are not supported at offset 1"]]-,-testRegex "[[=ch=]]" [ERROR]-    []-    [Just ["Failed: POSIX collating elements are not supported at offset 1"]]-,-testRegex "[[:rhubarb:]]" [ERROR]-    []-    [Just ["Failed: unknown POSIX class name at offset 3"]]-,-testRegex "[[:upper:]]" [caseless]-    ["A",-     "a"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: A"],-     Just [" 0: a"]]-,-testRegex "[[:lower:]]" [caseless]-    ["A",-     "a"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: A"],-     Just [" 0: a"]]-,-testRegex "((?-i)[[:lower:]])[[:lower:]]" [caseless]-    ["ab",-     "aB",-     "*** Failers",-     "Ab",-     "AB"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 0: aB"],-     Just [" 1: a"],-     Just [" 0: ai"],-     Just [" 1: a"],-     Nothing,-     Nothing]-,-testRegex "[\\200-\\110]" [ERROR]-    []-    [Just ["Failed: range out of order in character class at offset 9"]]-,-testRegex "^(?(0)f|b)oo" [ERROR]-    []-    [Just ["Failed: invalid condition (?(0) at offset 6"]]-,-testRegex "This one's here because of the large output vector needed" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'T'"],-     Just ["Need char = 'd'"]]-,-testRegex "(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\d+(?:\\s|$))(\\w+)\\s+(\\270)" [ERROR]-    ["\\O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC"]-    [Just ["Capturing subpattern count = 271"],-     Just ["Max back reference = 270"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC"],-     Just [" 1: 1 "],-     Just [" 2: 2 "],-     Just [" 3: 3 "],-     Just [" 4: 4 "],-     Just [" 5: 5 "],-     Just [" 6: 6 "],-     Just [" 7: 7 "],-     Just [" 8: 8 "],-     Just [" 9: 9 "],-     Just ["10: 10 "],-     Just ["11: 11 "],-     Just ["12: 12 "],-     Just ["13: 13 "],-     Just ["14: 14 "],-     Just ["15: 15 "],-     Just ["16: 16 "],-     Just ["17: 17 "],-     Just ["18: 18 "],-     Just ["19: 19 "],-     Just ["20: 20 "],-     Just ["21: 21 "],-     Just ["22: 22 "],-     Just ["23: 23 "],-     Just ["24: 24 "],-     Just ["25: 25 "],-     Just ["26: 26 "],-     Just ["27: 27 "],-     Just ["28: 28 "],-     Just ["29: 29 "],-     Just ["30: 30 "],-     Just ["31: 31 "],-     Just ["32: 32 "],-     Just ["33: 33 "],-     Just ["34: 34 "],-     Just ["35: 35 "],-     Just ["36: 36 "],-     Just ["37: 37 "],-     Just ["38: 38 "],-     Just ["39: 39 "],-     Just ["40: 40 "],-     Just ["41: 41 "],-     Just ["42: 42 "],-     Just ["43: 43 "],-     Just ["44: 44 "],-     Just ["45: 45 "],-     Just ["46: 46 "],-     Just ["47: 47 "],-     Just ["48: 48 "],-     Just ["49: 49 "],-     Just ["50: 50 "],-     Just ["51: 51 "],-     Just ["52: 52 "],-     Just ["53: 53 "],-     Just ["54: 54 "],-     Just ["55: 55 "],-     Just ["56: 56 "],-     Just ["57: 57 "],-     Just ["58: 58 "],-     Just ["59: 59 "],-     Just ["60: 60 "],-     Just ["61: 61 "],-     Just ["62: 62 "],-     Just ["63: 63 "],-     Just ["64: 64 "],-     Just ["65: 65 "],-     Just ["66: 66 "],-     Just ["67: 67 "],-     Just ["68: 68 "],-     Just ["69: 69 "],-     Just ["70: 70 "],-     Just ["71: 71 "],-     Just ["72: 72 "],-     Just ["73: 73 "],-     Just ["74: 74 "],-     Just ["75: 75 "],-     Just ["76: 76 "],-     Just ["77: 77 "],-     Just ["78: 78 "],-     Just ["79: 79 "],-     Just ["80: 80 "],-     Just ["81: 81 "],-     Just ["82: 82 "],-     Just ["83: 83 "],-     Just ["84: 84 "],-     Just ["85: 85 "],-     Just ["86: 86 "],-     Just ["87: 87 "],-     Just ["88: 88 "],-     Just ["89: 89 "],-     Just ["90: 90 "],-     Just ["91: 91 "],-     Just ["92: 92 "],-     Just ["93: 93 "],-     Just ["94: 94 "],-     Just ["95: 95 "],-     Just ["96: 96 "],-     Just ["97: 97 "],-     Just ["98: 98 "],-     Just ["99: 99 "],-     Just ["100: 100 "],-     Just ["101: 101 "],-     Just ["102: 102 "],-     Just ["103: 103 "],-     Just ["104: 104 "],-     Just ["105: 105 "],-     Just ["106: 106 "],-     Just ["107: 107 "],-     Just ["108: 108 "],-     Just ["109: 109 "],-     Just ["110: 110 "],-     Just ["111: 111 "],-     Just ["112: 112 "],-     Just ["113: 113 "],-     Just ["114: 114 "],-     Just ["115: 115 "],-     Just ["116: 116 "],-     Just ["117: 117 "],-     Just ["118: 118 "],-     Just ["119: 119 "],-     Just ["120: 120 "],-     Just ["121: 121 "],-     Just ["122: 122 "],-     Just ["123: 123 "],-     Just ["124: 124 "],-     Just ["125: 125 "],-     Just ["126: 126 "],-     Just ["127: 127 "],-     Just ["128: 128 "],-     Just ["129: 129 "],-     Just ["130: 130 "],-     Just ["131: 131 "],-     Just ["132: 132 "],-     Just ["133: 133 "],-     Just ["134: 134 "],-     Just ["135: 135 "],-     Just ["136: 136 "],-     Just ["137: 137 "],-     Just ["138: 138 "],-     Just ["139: 139 "],-     Just ["140: 140 "],-     Just ["141: 141 "],-     Just ["142: 142 "],-     Just ["143: 143 "],-     Just ["144: 144 "],-     Just ["145: 145 "],-     Just ["146: 146 "],-     Just ["147: 147 "],-     Just ["148: 148 "],-     Just ["149: 149 "],-     Just ["150: 150 "],-     Just ["151: 151 "],-     Just ["152: 152 "],-     Just ["153: 153 "],-     Just ["154: 154 "],-     Just ["155: 155 "],-     Just ["156: 156 "],-     Just ["157: 157 "],-     Just ["158: 158 "],-     Just ["159: 159 "],-     Just ["160: 160 "],-     Just ["161: 161 "],-     Just ["162: 162 "],-     Just ["163: 163 "],-     Just ["164: 164 "],-     Just ["165: 165 "],-     Just ["166: 166 "],-     Just ["167: 167 "],-     Just ["168: 168 "],-     Just ["169: 169 "],-     Just ["170: 170 "],-     Just ["171: 171 "],-     Just ["172: 172 "],-     Just ["173: 173 "],-     Just ["174: 174 "],-     Just ["175: 175 "],-     Just ["176: 176 "],-     Just ["177: 177 "],-     Just ["178: 178 "],-     Just ["179: 179 "],-     Just ["180: 180 "],-     Just ["181: 181 "],-     Just ["182: 182 "],-     Just ["183: 183 "],-     Just ["184: 184 "],-     Just ["185: 185 "],-     Just ["186: 186 "],-     Just ["187: 187 "],-     Just ["188: 188 "],-     Just ["189: 189 "],-     Just ["190: 190 "],-     Just ["191: 191 "],-     Just ["192: 192 "],-     Just ["193: 193 "],-     Just ["194: 194 "],-     Just ["195: 195 "],-     Just ["196: 196 "],-     Just ["197: 197 "],-     Just ["198: 198 "],-     Just ["199: 199 "],-     Just ["200: 200 "],-     Just ["201: 201 "],-     Just ["202: 202 "],-     Just ["203: 203 "],-     Just ["204: 204 "],-     Just ["205: 205 "],-     Just ["206: 206 "],-     Just ["207: 207 "],-     Just ["208: 208 "],-     Just ["209: 209 "],-     Just ["210: 210 "],-     Just ["211: 211 "],-     Just ["212: 212 "],-     Just ["213: 213 "],-     Just ["214: 214 "],-     Just ["215: 215 "],-     Just ["216: 216 "],-     Just ["217: 217 "],-     Just ["218: 218 "],-     Just ["219: 219 "],-     Just ["220: 220 "],-     Just ["221: 221 "],-     Just ["222: 222 "],-     Just ["223: 223 "],-     Just ["224: 224 "],-     Just ["225: 225 "],-     Just ["226: 226 "],-     Just ["227: 227 "],-     Just ["228: 228 "],-     Just ["229: 229 "],-     Just ["230: 230 "],-     Just ["231: 231 "],-     Just ["232: 232 "],-     Just ["233: 233 "],-     Just ["234: 234 "],-     Just ["235: 235 "],-     Just ["236: 236 "],-     Just ["237: 237 "],-     Just ["238: 238 "],-     Just ["239: 239 "],-     Just ["240: 240 "],-     Just ["241: 241 "],-     Just ["242: 242 "],-     Just ["243: 243 "],-     Just ["244: 244 "],-     Just ["245: 245 "],-     Just ["246: 246 "],-     Just ["247: 247 "],-     Just ["248: 248 "],-     Just ["249: 249 "],-     Just ["250: 250 "],-     Just ["251: 251 "],-     Just ["252: 252 "],-     Just ["253: 253 "],-     Just ["254: 254 "],-     Just ["255: 255 "],-     Just ["256: 256 "],-     Just ["257: 257 "],-     Just ["258: 258 "],-     Just ["259: 259 "],-     Just ["260: 260 "],-     Just ["261: 261 "],-     Just ["262: 262 "],-     Just ["263: 263 "],-     Just ["264: 264 "],-     Just ["265: 265 "],-     Just ["266: 266 "],-     Just ["267: 267 "],-     Just ["268: 268 "],-     Just ["269: 269 "],-     Just ["270: ABC"],-     Just ["271: ABC"]]-,-testRegex "This one's here because Perl does this differently and PCRE can't at present" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'T'"],-     Just ["Need char = 't'"]]-,-testRegex "(main(O)?)+" [ERROR]-    ["mainmain",-     "mainOmain"]-    [Just ["Capturing subpattern count = 2"],-     Just ["No options"],-     Just ["First char = 'm'"],-     Just ["Need char = 'n'"],-     Just [" 0: mainmain"],-     Just [" 1: main"],-     Just [" 0: mainOmain"],-     Just [" 1: main"],-     Just [" 2: O"]]-,-testRegex "These are all cases where Perl does it differently (nested captures)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'T'"],-     Just ["Need char = 's'"]]-,-testRegex "^(a(b)?)+$" [ERROR]-    ["aba"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aba"],-     Just [" 1: a"],-     Just [" 2: b"]]-,-testRegex "^(aa(bb)?)+$" [ERROR]-    ["aabbaa"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbaa"],-     Just [" 1: aa"],-     Just [" 2: bb"]]-,-testRegex "^(aa|aa(bb))+$" [ERROR]-    ["aabbaa"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbaa"],-     Just [" 1: aa"],-     Just [" 2: bb"]]-,-testRegex "^(aa(bb)??)+$" [ERROR]-    ["aabbaa"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbaa"],-     Just [" 1: aa"],-     Just [" 2: bb"]]-,-testRegex "^(?:aa(bb)?)+$" [ERROR]-    ["aabbaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbaa"],-     Just [" 1: bb"]]-,-testRegex "^(aa(b(b))?)+$" [ERROR]-    ["aabbaa"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbaa"],-     Just [" 1: aa"],-     Just [" 2: bb"],-     Just [" 3: b"]]-,-testRegex "^(?:aa(b(b))?)+$" [ERROR]-    ["aabbaa"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbaa"],-     Just [" 1: bb"],-     Just [" 2: b"]]-,-testRegex "^(?:aa(b(?:b))?)+$" [ERROR]-    ["aabbaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbaa"],-     Just [" 1: bb"]]-,-testRegex "^(?:aa(bb(?:b))?)+$" [ERROR]-    ["aabbbaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbbaa"],-     Just [" 1: bbb"]]-,-testRegex "^(?:aa(b(?:bb))?)+$" [ERROR]-    ["aabbbaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbbaa"],-     Just [" 1: bbb"]]-,-testRegex "^(?:aa(?:b(b))?)+$" [ERROR]-    ["aabbaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbaa"],-     Just [" 1: b"]]-,-testRegex "^(?:aa(?:b(bb))?)+$" [ERROR]-    ["aabbbaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbbaa"],-     Just [" 1: bb"]]-,-testRegex "^(aa(b(bb))?)+$" [ERROR]-    ["aabbbaa"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbbaa"],-     Just [" 1: aa"],-     Just [" 2: bbb"],-     Just [" 3: bb"]]-,-testRegex "^(aa(bb(bb))?)+$" [ERROR]-    ["aabbbbaa"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aabbbbaa"],-     Just [" 1: aa"],-     Just [" 2: bbbb"],-     Just [" 3: bb"]]-,-testRegex "--------------------------------------------------------------------" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = '-'"],-     Just ["Need char = '-'"]]-,-testRegex "#" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: extended"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "a#" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: extended"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "[\\s]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[\\S]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "a(?i)b" [ERROR]-    ["ab",-     "aB",-     "*** Failers",-     "AB"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b' (caseless)"],-     Just [" 0: ab"],-     Just [" 0: aB"],-     Nothing,-     Nothing]-,-testRegex "(a(?i)b)" [ERROR]-    ["ab",-     "aB",-     "*** Failers",-     "AB"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b' (caseless)"],-     Just [" 0: ab"],-     Just [" 1: ab"],-     Just [" 0: aB"],-     Just [" 1: aB"],-     Nothing,-     Nothing]-,-testRegex "   (?i)abc" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless extended"],-     Just ["First char = 'a' (caseless)"],-     Just ["Need char = 'c' (caseless)"]]-,-testRegex "ERROR" []-    ["(?i)abc/IxDZ"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless extended"],-     Just ["First char = 'a' (caseless)"],-     Just ["Need char = 'c' (caseless)"]]-,-testRegex "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = '1'"],-     Just ["Need char = '0'"]]-,-testRegex "\\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = '1'"],-     Just ["Need char = '0'"]]-,-testRegex "\\Q\\E" [ERROR]-    ["\\"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: "]]-,-testRegex "\\Q\\Ex" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["No need char"]]-,-testRegex " \\Q\\E" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = ' '"],-     Just ["No need char"]]-,-testRegex "a\\Q\\E" [ERROR]-    ["abc",-     "bca",-     "bac"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"],-     Just [" 0: a"],-     Just [" 0: a"],-     Just [" 0: a"]]-,-testRegex "a\\Q\\Eb" [ERROR]-    ["abc"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: ab"]]-,-testRegex "\\Q\\Eabc" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"]]-,-testRegex "x*+\\w" [ERROR]-    ["*** Failers",-     "xxxxx"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: F"],-     Nothing]-,-testRegex "x?+" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "x++" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["No need char"]]-,-testRegex "x{1,3}+" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["No need char"]]-,-testRegex "(x)*+" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^(\\w++|\\s++)*$" [ERROR]-    ["now is the time for all good men to come to the aid of the party",-     "*** Failers",-     "this is not a line with only words and spaces!"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: now is the time for all good men to come to the aid of the party"],-     Just [" 1: party"],-     Nothing,-     Nothing]-,-testRegex "(\\d++)(\\w)" [ERROR]-    ["12345a",-     "*** Failers",-     "12345+"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: 12345a"],-     Just [" 1: 12345"],-     Just [" 2: a"],-     Nothing,-     Nothing]-,-testRegex "a++b" [ERROR]-    ["aaab"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: aaab"]]-,-testRegex "(a++b)" [ERROR]-    ["aaab"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: aaab"],-     Just [" 1: aaab"]]-,-testRegex "(a++)b" [ERROR]-    ["aaab"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: aaab"],-     Just [" 1: aaa"]]-,-testRegex "([^()]++|\\([^()]*\\))+" [ERROR]-    ["((abc(ade)ufh()()x"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abc(ade)ufh()()x"],-     Just [" 1: x"]]-,-testRegex "\\(([^()]++|\\([^()]+\\))+\\)" [ERROR]-    ["(abc)",-     "(abc(def)xyz)",-     "*** Failers",-     "((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = '('"],-     Just ["Need char = ')'"],-     Just [" 0: (abc)"],-     Just [" 1: abc"],-     Just [" 0: (abc(def)xyz)"],-     Just [" 1: xyz"],-     Nothing,-     Nothing]-,-testRegex "(abc){1,3}+" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"]]-,-testRegex "a+?+" [ERROR]-    []-    [Just ["Failed: nothing to repeat at offset 3"]]-,-testRegex "a{2,3}?+b" [ERROR]-    []-    [Just ["Failed: nothing to repeat at offset 7"]]-,-testRegex "(?U)a+?+" [ERROR]-    []-    [Just ["Failed: nothing to repeat at offset 7"]]-,-testRegex "a{2,3}?+b" [ERROR]-    []-    [Just ["Failed: nothing to repeat at offset 7"]]-,-testRegex "x(?U)a++b" [ERROR]-    ["xaaaab"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["Need char = 'b'"],-     Just [" 0: xaaaab"]]-,-testRegex "(?U)xa++b" [ERROR]-    ["xaaaab"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: ungreedy"],-     Just ["First char = 'x'"],-     Just ["Need char = 'b'"],-     Just [" 0: xaaaab"]]-,-testRegex "^((a+)(?U)([ab]+)(?-U)([bc]+)(\\w*))" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 5"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^x(?U)a+b" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = 'b'"]]-,-testRegex "^x(?U)(a+)b" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = 'b'"]]-,-testRegex "[.x.]" [ERROR]-    []-    [Just ["Failed: POSIX collating elements are not supported at offset 0"]]-,-testRegex "[=x=]" [ERROR]-    []-    [Just ["Failed: POSIX collating elements are not supported at offset 0"]]-,-testRegex "[:x:]" [ERROR]-    []-    [Just ["Failed: POSIX named classes are supported only within a class at offset 0"]]-,-testRegex "\\l" [ERROR]-    []-    [Just ["Failed: PCRE does not support \\L, \\l, \\N, \\U, or \\u at offset 1"]]-,-testRegex "\\L" [ERROR]-    []-    [Just ["Failed: PCRE does not support \\L, \\l, \\N, \\U, or \\u at offset 1"]]-,-testRegex "\\N{name}" [ERROR]-    []-    [Just ["Failed: PCRE does not support \\L, \\l, \\N, \\U, or \\u at offset 1"]]-,-testRegex "\\u" [ERROR]-    []-    [Just ["Failed: PCRE does not support \\L, \\l, \\N, \\U, or \\u at offset 1"]]-,-testRegex "\\U" [ERROR]-    []-    [Just ["Failed: PCRE does not support \\L, \\l, \\N, \\U, or \\u at offset 1"]]-,-testRegex "[" [ERROR]-    []-    [Just ["Failed: missing terminating ] for character class at offset 1"]]-,-testRegex "[a-" [ERROR]-    []-    [Just ["Failed: missing terminating ] for character class at offset 3"]]-,-testRegex "[[:space:]" [ERROR]-    []-    [Just ["Failed: missing terminating ] for character class at offset 10"]]-,-testRegex "[\\s]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[[:space:]]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[[:space:]abcde]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "< (?: (?(R) \\d++  | [^<>]*+) | (?R)) * >" [ERROR]-    ["<>",-     "<abcd>",-     "<abc <123> hij>",-     "<abc <def> hij>",-     "<abc<>def>",-     "<abc<>",-     "*** Failers",-     "<abc"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '<'"],-     Just ["Need char = '>'"],-     Just [" 0: <>"],-     Just [" 0: <abcd>"],-     Just [" 0: <abc <123> hij>"],-     Just [" 0: <def>"],-     Just [" 0: <abc<>def>"],-     Just [" 0: <>"],-     Nothing,-     Nothing]-,-testRegex "ERROR" []-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = '8'"],-     Just ["Need char = 'X'"]]-,-testRegex "ERROR" []-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = '$'"],-     Just ["Need char = 'X'"]]-,-testRegex "(.*)\\d+\\1" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(.*)\\d+" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["No need char"]]-,-testRegex "(.*)\\d+\\1" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(.*)\\d+" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(.*(xyz))\\d+\\2" [ERROR]-    []-    [Just ["Capturing subpattern count = 2"],-     Just ["Max back reference = 2"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'z'"]]-,-testRegex "((.*))\\d+\\1" [ERROR]-    ["abc123bc"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: bc123bc"],-     Just [" 1: bc"],-     Just [" 2: bc"]]-,-testRegex "a[b]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "(?=a).*" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "(?=abc).xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless"],-     Just ["First char = 'a' (caseless)"],-     Just ["Need char = 'z' (caseless)"]]-,-testRegex "(?=abc)(?i).xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'z' (caseless)"]]-,-testRegex "(?=a)(?=b)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "(?=.)a" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "((?=abcda)a)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'a'"]]-,-testRegex "((?=abcda)ab)" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "()a" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'a'"]]-,-testRegex "(?(1)ab|ac)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "(?(1)abz|acz)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'z'"]]-,-testRegex "(?(1)abz)" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(?(1)abz)123" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = '3'"]]-,-testRegex "(a)+" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "(a){2,3}" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'a'"]]-,-testRegex "(a)*" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[a]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["No need char"]]-,-testRegex "[ab]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[ab]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b "]]-,-testRegex "[^a]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "\\d456" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = '6'"]]-,-testRegex "\\d456" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = '6'"],-     Just ["Starting byte set: 0 1 2 3 4 5 6 7 8 9 "]]-,-testRegex "a^b" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "^a" [ERROR]-    ["abcde",-     "xy\\nabc",-     "*** Failers",-     "xyabc"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'a'"],-     Just [" 0: a"],-     Just [" 0: a"],-     Nothing,-     Nothing]-,-testRegex "c|abc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'c'"]]-,-testRegex "(?i)[ab]" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: A B a b "]]-,-testRegex "[ab](?i)cd" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'd' (caseless)"],-     Just ["Starting byte set: a b "]]-,-testRegex "abc(?C)def" [ERROR]-    ["abcdef",-     "1234abcdef",-     "*** Failers",-     "abcxyz",-     "abcxyzf"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'f'"],-     Just ["--->abcdef"],-     Just [" 0: abcdef"],-     Just ["--->1234abcdef"],-     Just [" 0: abcdef"],-     Nothing,-     Nothing,-     Just ["--->abcxyzf"],-     Nothing]-,-testRegex "abc(?C)de(?C1)f" [ERROR]-    ["123abcdef"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'f'"],-     Just ["--->123abcdef"],-     Just [" 0: abcdef"]]-,-testRegex "(?C1)\\dabc(?C2)def" [ERROR]-    ["1234abcdef",-     "*** Failers",-     "abcdef"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'f'"],-     Just ["--->1234abcdef"],-     Just [" 0: 4abcdef"],-     Nothing,-     Just ["--->abcdef"],-     Nothing]-,-testRegex "(?C255)ab" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "(?C256)ab" [ERROR]-    []-    [Just ["Failed: number after (?C is > 255 at offset 6"]]-,-testRegex "(?Cab)xx" [ERROR]-    []-    [Just ["Failed: closing ) for (?C expected at offset 3"]]-,-testRegex "(?C12vr)x" [ERROR]-    []-    [Just ["Failed: closing ) for (?C expected at offset 5"]]-,-testRegex "abc(?C)def" [ERROR]-    ["*** Failers",-     "\\x83\\x0\\x61bcdef"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'f'"],-     Nothing,-     Just ["--->\\x83\\x00abcdef"],-     Just [" 0: abcdef"]]-,-testRegex "(abc)(?C)de(?C1)f" [ERROR]-    ["123abcdef",-     "123abcdef\\C+",-     "123abcdef\\C-",-     "*** Failers",-     "123abcdef\\C!1"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'f'"],-     Just ["--->123abcdef"],-     Just [" 0: abcdef"],-     Just [" 1: abc"],-     Just ["Callout 0: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: abc"],-     Just ["--->123abcdef"],-     Just ["Callout 1: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: abc"],-     Just ["--->123abcdef"],-     Just [" 0: abcdef"],-     Just [" 1: abc"],-     Just [" 0: abcdef"],-     Just [" 1: abc"],-     Nothing,-     Just ["--->123abcdef"],-     Nothing]-,-testRegex "(?C0)(abc(?C1))*" [ERROR]-    ["abcabcabc",-     "abcabc\\C!1!3",-     "*** Failers",-     "abcabcabc\\C!1!3"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["--->abcabcabc"],-     Just [" 0: abcabcabc"],-     Just [" 1: abc"],-     Just ["--->abcabc"],-     Just [" 0: abcabc"],-     Just [" 1: abc"],-     Just ["--->*** Failers"],-     Just [" 0: "],-     Just ["--->abcabcabc"],-     Just [" 0: abcabc"],-     Just [" 1: abc"]]-,-testRegex "(\\d{3}(?C))*" [ERROR]-    ["123\\C+",-     "123456\\C+",-     "123456789\\C+"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Callout 0: last capture = -1"],-     Just [" 0: <unset>"],-     Just ["--->123"],-     Just [" 0: 123"],-     Just [" 1: 123"],-     Just ["Callout 0: last capture = -1"],-     Just [" 0: <unset>"],-     Just ["--->123456"],-     Just ["Callout 0: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: 123"],-     Just ["--->123456"],-     Just [" 0: 123456"],-     Just [" 1: 456"],-     Just ["Callout 0: last capture = -1"],-     Just [" 0: <unset>"],-     Just ["--->123456789"],-     Just ["Callout 0: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: 123"],-     Just ["--->123456789"],-     Just ["Callout 0: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: 456"],-     Just ["--->123456789"],-     Just [" 0: 123456789"],-     Just [" 1: 789"]]-,-testRegex "((xyz)(?C)p|(?C1)xyzabc)" [ERROR]-    ["xyzabc\\C+"]-    [Just ["Capturing subpattern count = 2"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["No need char"],-     Just ["Callout 0: last capture = 2"],-     Just [" 0: <unset>"],-     Just [" 1: <unset>"],-     Just [" 2: xyz"],-     Just ["--->xyzabc"],-     Just ["Callout 1: last capture = -1"],-     Just [" 0: <unset>"],-     Just ["--->xyzabc"],-     Just [" 0: xyzabc"],-     Just [" 1: xyzabc"]]-,-testRegex "(X)((xyz)(?C)p|(?C1)xyzabc)" [ERROR]-    ["Xxyzabc\\C+"]-    [Just ["Capturing subpattern count = 3"],-     Just ["No options"],-     Just ["First char = 'X'"],-     Just ["Need char = 'x'"],-     Just ["Callout 0: last capture = 3"],-     Just [" 0: <unset>"],-     Just [" 1: X"],-     Just [" 2: <unset>"],-     Just [" 3: xyz"],-     Just ["--->Xxyzabc"],-     Just ["Callout 1: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: X"],-     Just ["--->Xxyzabc"],-     Just [" 0: Xxyzabc"],-     Just [" 1: X"],-     Just [" 2: xyzabc"]]-,-testRegex "(?=(abc))(?C)abcdef" [ERROR]-    ["abcdef\\C+"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'f'"],-     Just ["Callout 0: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: abc"],-     Just ["--->abcdef"],-     Just [" 0: abcdef"],-     Just [" 1: abc"]]-,-testRegex "(?!(abc)(?C1)d)(?C2)abcxyz" [ERROR]-    ["abcxyz\\C+"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'z'"],-     Just ["Callout 1: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: abc"],-     Just ["--->abcxyz"],-     Just ["Callout 2: last capture = -1"],-     Just [" 0: <unset>"],-     Just ["--->abcxyz"],-     Just [" 0: abcxyz"]]-,-testRegex "(?<=(abc)(?C))xyz" [ERROR]-    ["abcxyz\\C+"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["Need char = 'z'"],-     Just ["Callout 0: last capture = 1"],-     Just [" 0: <unset>"],-     Just [" 1: abc"],-     Just ["--->abcxyz"],-     Just [" 0: xyz"],-     Just [" 1: abc"]]-,-testRegex "a(b+)(c*)(?C1)" [ERROR]-    ["abbbbbccc\\C*1"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just ["--->abbbbbccc"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Nothing]-,-testRegex "a(b+?)(c*?)(?C1)" [ERROR]-    ["abbbbbccc\\C*1"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just ["--->abbbbbccc"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Just ["Callout data = 1"],-     Nothing]-,-testRegex "(?C)abc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"]]-,-testRegex "(?C)^abc" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(?C)a|b" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b "]]-,-testRegex "(?R)" [ERROR]-    []-    [Just ["Failed: recursive call could loop indefinitely at offset 3"]]-,-testRegex "(a|(?R))" [ERROR]-    []-    [Just ["Failed: recursive call could loop indefinitely at offset 6"]]-,-testRegex "(ab|(bc|(de|(?R))))" [ERROR]-    []-    [Just ["Failed: recursive call could loop indefinitely at offset 15"]]-,-testRegex "x(ab|(bc|(de|(?R))))" [ERROR]-    ["xab",-     "xbc",-     "xde",-     "xxab",-     "xxxab",-     "*** Failers",-     "xyab"]-    [Just ["Capturing subpattern count = 3"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["No need char"],-     Just [" 0: xab"],-     Just [" 1: ab"],-     Just [" 0: xbc"],-     Just [" 1: bc"],-     Just [" 2: bc"],-     Just [" 0: xde"],-     Just [" 1: de"],-     Just [" 2: de"],-     Just [" 3: de"],-     Just [" 0: xxab"],-     Just [" 1: xab"],-     Just [" 2: xab"],-     Just [" 3: xab"],-     Just [" 0: xxxab"],-     Just [" 1: xxab"],-     Just [" 2: xxab"],-     Just [" 3: xxab"],-     Nothing,-     Nothing]-,-testRegex "(ab|(bc|(de|(?1))))" [ERROR]-    []-    [Just ["Failed: recursive call could loop indefinitely at offset 15"]]-,-testRegex "x(ab|(bc|(de|(?1)x)x)x)" [ERROR]-    []-    [Just ["Failed: recursive call could loop indefinitely at offset 16"]]-,-testRegex "^([^()]|\\((?1)*\\))*$" [ERROR]-    ["abc",-     "a(b)c",-     "a(b(c))d",-     "*** Failers)",-     "a(b(c)d"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abc"],-     Just [" 1: c"],-     Just [" 0: a(b)c"],-     Just [" 1: c"],-     Just [" 0: a(b(c))d"],-     Just [" 1: d"],-     Nothing,-     Nothing]-,-testRegex "^>abc>([^()]|\\((?1)*\\))*<xyz<$" [ERROR]-    [">abc>123<xyz<",-     ">abc>1(2)3<xyz<",-     ">abc>(1(2)3)<xyz<"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = '<'"],-     Just [" 0: >abc>123<xyz<"],-     Just [" 1: 3"],-     Just [" 0: >abc>1(2)3<xyz<"],-     Just [" 1: 3"],-     Just [" 0: >abc>(1(2)3)<xyz<"],-     Just [" 1: (1(2)3)"]]-,-testRegex "(a(?1)b)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "(a(?1)+b)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex "^\\W*(?:((.)\\W*(?1)\\W*\\2|)|((.)\\W*(?3)\\W*\\4|\\W*.\\W*))\\W*$" [caseless]-    ["1221",-     "Satan, oscillate my metallic sonatas!",-     "A man, a plan, a canal: Panama!",-     "Able was I ere I saw Elba.",-     "*** Failers",-     "The quick brown fox"]-    [Just ["Capturing subpattern count = 4"],-     Just ["Max back reference = 4"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: 1221"],-     Just [" 1: 1221"],-     Just [" 2: 1"],-     Just [" 0: Satan, oscillate my metallic sonatas!"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: Satan, oscillate my metallic sonatas"],-     Just [" 4: S"],-     Just [" 0: A man, a plan, a canal: Panama!"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: A man, a plan, a canal: Panama"],-     Just [" 4: A"],-     Just [" 0: Able was I ere I saw Elba."],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: Able was I ere I saw Elba"],-     Just [" 4: A"],-     Nothing,-     Nothing]-,-testRegex "^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$" [ERROR]-    ["12",-     "(((2+2)*-3)-7)",-     "-12",-     "*** Failers",-     "((2+2)*-3)-7)"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: 12"],-     Just [" 1: 12"],-     Just [" 0: (((2+2)*-3)-7)"],-     Just [" 1: (((2+2)*-3)-7)"],-     Just [" 2: -"],-     Just [" 0: -12"],-     Just [" 1: -12"],-     Nothing,-     Nothing]-,-testRegex "^(x(y|(?1){2})z)" [ERROR]-    ["xyz",-     "xxyzxyzz",-     "*** Failers",-     "xxyzz",-     "xxyzxyzxyzz"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: xyz"],-     Just [" 1: xyz"],-     Just [" 2: y"],-     Just [" 0: xxyzxyzz"],-     Just [" 1: xxyzxyzz"],-     Just [" 2: xyzxyz"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "((< (?: (?(R) \\d++  | [^<>]*+) | (?2)) * >))" [ERROR]-    ["<>",-     "<abcd>",-     "<abc <123> hij>",-     "<abc <def> hij>",-     "<abc<>def>",-     "<abc<>",-     "*** Failers",-     "<abc"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Partial matching not supported"],-     Just ["Options: extended"],-     Just ["First char = '<'"],-     Just ["Need char = '>'"],-     Just [" 0: <>"],-     Just [" 1: <>"],-     Just [" 2: <>"],-     Just [" 0: <abcd>"],-     Just [" 1: <abcd>"],-     Just [" 2: <abcd>"],-     Just [" 0: <abc <123> hij>"],-     Just [" 1: <abc <123> hij>"],-     Just [" 2: <abc <123> hij>"],-     Just [" 0: <def>"],-     Just [" 1: <def>"],-     Just [" 2: <def>"],-     Just [" 0: <abc<>def>"],-     Just [" 1: <abc<>def>"],-     Just [" 2: <abc<>def>"],-     Just [" 0: <>"],-     Just [" 1: <>"],-     Just [" 2: <>"],-     Nothing,-     Nothing]-,-testRegex "(?1)" [ERROR]-    []-    [Just ["Failed: reference to non-existent subpattern at offset 3"]]-,-testRegex "((?2)(abc)" [ERROR]-    []-    [Just ["Failed: missing ) at offset 10"]]-,-testRegex "^(abc)def(?1)" [ERROR]-    ["abcdefabc"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: abcdefabc"],-     Just [" 1: abc"]]-,-testRegex "^(a|b|c)=(?1)+" [ERROR]-    ["a=a",-     "a=b",-     "a=bc"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: a=a"],-     Just [" 1: a"],-     Just [" 0: a=b"],-     Just [" 1: a"],-     Just [" 0: a=bc"],-     Just [" 1: a"]]-,-testRegex "^(a|b|c)=((?1))+" [ERROR]-    ["a=a",-     "a=b",-     "a=bc"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: a=a"],-     Just [" 1: a"],-     Just [" 2: a"],-     Just [" 0: a=b"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 0: a=bc"],-     Just [" 1: a"],-     Just [" 2: c"]]-,-testRegex "a(?P<name1>b|c)d(?P<longername2>e)" [ERROR]-    ["abde",-     "acde"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'e'"],-     Just [" 0: abde"],-     Just [" 1: b"],-     Just [" 2: e"],-     Just [" 0: acde"],-     Just [" 1: c"],-     Just [" 2: e"]]-,-testRegex "(?:a(?P<c>c(?P<d>d)))(?P<a>a)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 3"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'a'"]]-,-testRegex "(?P<a>a)...(?P=a)bbb(?P>a)d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'd'"]]-,-testRegex "^\\W*(?:(?P<one>(?P<two>.)\\W*(?P>one)\\W*(?P=two)|)|(?P<three>(?P<four>.)\\W*(?P>three)\\W*(?P=four)|\\W*.\\W*))\\W*$" [caseless]-    ["1221",-     "Satan, oscillate my metallic sonatas!",-     "A man, a plan, a canal: Panama!",-     "Able was I ere I saw Elba.",-     "*** Failers",-     "The quick brown fox"]-    [Just ["Capturing subpattern count = 4"],-     Just ["Max back reference = 4"],-     Just ["Named capturing subpatterns:"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: 1221"],-     Just [" 1: 1221"],-     Just [" 2: 1"],-     Just [" 0: Satan, oscillate my metallic sonatas!"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: Satan, oscillate my metallic sonatas"],-     Just [" 4: S"],-     Just [" 0: A man, a plan, a canal: Panama!"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: A man, a plan, a canal: Panama"],-     Just [" 4: A"],-     Just [" 0: Able was I ere I saw Elba."],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: Able was I ere I saw Elba"],-     Just [" 4: A"],-     Nothing,-     Nothing]-,-testRegex "((?(R)a|b))\\1(?1)?" [ERROR]-    ["bb",-     "bbaa"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: bb"],-     Just [" 1: b"],-     Just [" 0: bba"],-     Just [" 1: b"]]-,-testRegex "(.*)a" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["Need char = 'a'"]]-,-testRegex "(.*)a\\1" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["Need char = 'a'"]]-,-testRegex "(.*)a(b)\\2" [ERROR]-    []-    [Just ["Capturing subpattern count = 2"],-     Just ["Max back reference = 2"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["Need char = 'b'"]]-,-testRegex "((.*)a|(.*)b)z" [ERROR]-    []-    [Just ["Capturing subpattern count = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["Need char = 'z'"]]-,-testRegex "((.*)a|(.*)b)z\\1" [ERROR]-    []-    [Just ["Capturing subpattern count = 3"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["Need char = 'z'"]]-,-testRegex "((.*)a|(.*)b)z\\2" [ERROR]-    []-    [Just ["Capturing subpattern count = 3"],-     Just ["Max back reference = 2"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["Need char = 'z'"]]-,-testRegex "((.*)a|(.*)b)z\\3" [ERROR]-    []-    [Just ["Capturing subpattern count = 3"],-     Just ["Max back reference = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["Need char = 'z'"]]-,-testRegex "((.*)a|^(.*)b)z\\3" [ERROR]-    []-    [Just ["Capturing subpattern count = 3"],-     Just ["Max back reference = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["Need char = 'z'"]]-,-testRegex "(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a" [ERROR]-    []-    [Just ["Capturing subpattern count = 31"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored dotall"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\\31" [ERROR]-    []-    [Just ["Capturing subpattern count = 31"],-     Just ["Max back reference = 31"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\\32" [ERROR]-    []-    [Just ["Capturing subpattern count = 32"],-     Just ["Max back reference = 32"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(a)(bc)" [ERROR]-    ["abc"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: no_auto_capture"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"]]-,-testRegex "(?P<one>a)(bc)" [ERROR]-    ["abc"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: no_auto_capture"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Just [" 1: a"]]-,-testRegex "(a)(?P<named>bc)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: no_auto_capture"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"]]-,-testRegex "(a+)*zz" [ERROR]-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\\M",-     "aaaaaaaaaaaaaz\\M"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'z'"],-     Just ["Minimum match() limit = 8"],-     Just ["Minimum match() recursion limit = 6"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz"],-     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["Minimum match() limit = 32768"],-     Just ["Minimum match() recursion limit = 42"],-     Nothing]-,-testRegex "(aaa(?C1)bbb|ab)" [ERROR]-    ["aaabbb",-     "aaabbb\\C*0",-     "aaabbb\\C*1",-     "aaabbb\\C*-1"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just ["--->aaabbb"],-     Just [" 0: aaabbb"],-     Just [" 1: aaabbb"],-     Just ["--->aaabbb"],-     Just [" 0: aaabbb"],-     Just [" 1: aaabbb"],-     Just ["--->aaabbb"],-     Just ["Callout data = 1"],-     Just [" 0: ab"],-     Just [" 1: ab"],-     Just ["--->aaabbb"],-     Just ["Callout data = -1"],-     Nothing]-,-testRegex "ab(?P<one>cd)ef(?P<two>gh)" [ERROR]-    ["abcdefgh",-     "abcdefgh\\C1\\Gtwo",-     "abcdefgh\\Cone\\Ctwo",-     "abcdefgh\\Cthree"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'h'"],-     Just [" 0: abcdefgh"],-     Just [" 1: cd"],-     Just [" 2: gh"],-     Just [" 0: abcdefgh"],-     Just [" 1: cd"],-     Just [" 2: gh"],-     Just [" 1C cd (2)"],-     Just [" 0: abcdefgh"],-     Just [" 1: cd"],-     Just [" 2: gh"],-     Just ["no parentheses with name \"three\""],-     Just [" 0: abcdefgh"],-     Just [" 1: cd"],-     Just [" 2: gh"],-     Just ["copy substring three failed -7"]]-,-testRegex "(?P<Tes>)(?P<Test>)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(?P<Test>)(?P<Tes>)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(?P<Z>zz)(?P<A>aa)" [ERROR]-    ["zzaa\\CZ",-     "zzaa\\CA"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'z'"],-     Just ["Need char = 'a'"],-     Just [" 0: zzaa"],-     Just [" 1: zz"],-     Just [" 2: aa"],-     Just [" 0: zzaa"],-     Just [" 1: zz"],-     Just [" 2: aa"]]-,-testRegex "(?P<x>eks)(?P<x>eccs)" [ERROR]-    []-    [Just ["Failed: two named subpatterns have the same name at offset 15"]]-,-testRegex "(?P<abc>abc(?P<def>def)(?P<abc>xyz))" [ERROR]-    []-    [Just ["Failed: two named subpatterns have the same name at offset 30"]]-,-testRegex "\\[((?P<elem>\\d+)(,(?P>elem))*)\\]" [ERROR]-    ["[10,20,30,5,5,4,4,2,43,23,4234]",-     "*** Failers",-     "[]"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Named capturing subpatterns:"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = '['"],-     Just ["Need char = ']'"],-     Just [" 0: [10,20,30,5,5,4,4,2,43,23,4234]"],-     Just [" 1: 10,20,30,5,5,4,4,2,43,23,4234"],-     Just [" 2: 10"],-     Just [" 3: ,4234"],-     Nothing,-     Nothing]-,-testRegex "\\[((?P<elem>\\d+)(,(?P>elem))*)?\\]" [ERROR]-    ["[10,20,30,5,5,4,4,2,43,23,4234]",-     "[]"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Named capturing subpatterns:"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["First char = '['"],-     Just ["Need char = ']'"],-     Just [" 0: [10,20,30,5,5,4,4,2,43,23,4234]"],-     Just [" 1: 10,20,30,5,5,4,4,2,43,23,4234"],-     Just [" 2: 10"],-     Just [" 3: ,4234"],-     Just [" 0: []"]]-,-testRegex "(a(b(?2)c))?" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 2"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(a(b(?2)c))*" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 2"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "(a(b(?2)c)){0,2}" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 2"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[ab]{1}+" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "((w\\/|-|with)*(free|immediate)*.*?shipping\\s*[!.-]*)" [caseless]-    ["Baby Bjorn Active Carrier - With free SHIPPING!!"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: caseless"],-     Just ["No first char"],-     Just ["Need char = 'g' (caseless)"],-     Just [" 0: Baby Bjorn Active Carrier - With free SHIPPING!!"],-     Just [" 1: Baby Bjorn Active Carrier - With free SHIPPING!!"]]-,-testRegex "((w\\/|-|with)*(free|immediate)*.*?shipping\\s*[!.-]*)" [ERROR]-    ["Baby Bjorn Active Carrier - With free SHIPPING!!"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Partial matching not supported"],-     Just ["Options: caseless"],-     Just ["No first char"],-     Just ["Need char = 'g' (caseless)"],-     Just ["Study returned NULL"],-     Just [" 0: Baby Bjorn Active Carrier - With free SHIPPING!!"],-     Just [" 1: Baby Bjorn Active Carrier - With free SHIPPING!!"]]-,-testRegex "a*.*b" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'b'"],-     Just ["Study returned NULL"]]-,-testRegex "(a|b)*.?c" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'c'"],-     Just ["Study returned NULL"]]-,-testRegex "abc(?C255)de(?C)f" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'f'"]]-,-testRegex "abcde" [ERROR]-    ["abcde",-     "abcdfe"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options:"],-     Just ["First char = 'a'"],-     Just ["Need char = 'e'"],-     Just ["--->abcde"],-     Just [" +0 ^         a"],-     Just [" +1 ^^        b"],-     Just [" +2 ^ ^       c"],-     Just [" +3 ^  ^      d"],-     Just [" +4 ^   ^     e"],-     Just [" +5 ^    ^    "],-     Just [" 0: abcde"],-     Just ["--->abcdfe"],-     Just [" +0 ^          a"],-     Just [" +1 ^^         b"],-     Just [" +2 ^ ^        c"],-     Just [" +3 ^  ^       d"],-     Just [" +4 ^   ^      e"],-     Nothing]-,-testRegex "a*b" [ERROR]-    ["ab",-     "aaaab",-     "aaaacb"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options:"],-     Just ["No first char"],-     Just ["Need char = 'b'"],-     Just ["--->ab"],-     Just [" +0 ^      a*"],-     Just [" +2 ^^     b"],-     Just [" +3 ^ ^    "],-     Just [" 0: ab"],-     Just ["--->aaaab"],-     Just [" +0 ^         a*"],-     Just [" +2 ^   ^     b"],-     Just [" +3 ^    ^    "],-     Just [" 0: aaaab"],-     Just ["--->aaaacb"],-     Just [" +0 ^          a*"],-     Just [" +2 ^   ^      b"],-     Just [" +0  ^         a*"],-     Just [" +2  ^  ^      b"],-     Just [" +0   ^        a*"],-     Just [" +2   ^ ^      b"],-     Just [" +0    ^       a*"],-     Just [" +2    ^^      b"],-     Just [" +0     ^      a*"],-     Just [" +2     ^      b"],-     Just [" +0      ^     a*"],-     Just [" +2      ^     b"],-     Just [" +3      ^^    "],-     Just [" 0: b"]]-,-testRegex "a+b" [ERROR]-    ["ab",-     "aaaab",-     "aaaacb"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options:"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just ["--->ab"],-     Just [" +0 ^      a+"],-     Just [" +2 ^^     b"],-     Just [" +3 ^ ^    "],-     Just [" 0: ab"],-     Just ["--->aaaab"],-     Just [" +0 ^         a+"],-     Just [" +2 ^   ^     b"],-     Just [" +3 ^    ^    "],-     Just [" 0: aaaab"],-     Just ["--->aaaacb"],-     Just [" +0 ^          a+"],-     Just [" +2 ^   ^      b"],-     Just [" +0  ^         a+"],-     Just [" +2  ^  ^      b"],-     Just [" +0   ^        a+"],-     Just [" +2   ^ ^      b"],-     Just [" +0    ^       a+"],-     Just [" +2    ^^      b"],-     Nothing]-,-testRegex "(abc|def)x" [ERROR]-    ["abcx",-     "defx",-     "abcdefzx"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Options:"],-     Just ["No first char"],-     Just ["Need char = 'x'"],-     Just ["--->abcx"],-     Just [" +0 ^        (abc|def)"],-     Just [" +1 ^        a"],-     Just [" +2 ^^       b"],-     Just [" +3 ^ ^      c"],-     Just [" +4 ^  ^     |"],-     Just [" +9 ^  ^     x"],-     Just ["+10 ^   ^    "],-     Just [" 0: abcx"],-     Just [" 1: abc"],-     Just ["--->defx"],-     Just [" +0 ^        (abc|def)"],-     Just [" +1 ^        a"],-     Just [" +5 ^        d"],-     Just [" +6 ^^       e"],-     Just [" +7 ^ ^      f"],-     Just [" +8 ^  ^     )"],-     Just [" +9 ^  ^     x"],-     Just ["+10 ^   ^    "],-     Just [" 0: defx"],-     Just [" 1: def"],-     Just ["--->abcdefzx"],-     Just [" +0 ^            (abc|def)"],-     Just [" +1 ^            a"],-     Just [" +2 ^^           b"],-     Just [" +3 ^ ^          c"],-     Just [" +4 ^  ^         |"],-     Just [" +9 ^  ^         x"],-     Just [" +5 ^            d"],-     Just [" +0  ^           (abc|def)"],-     Just [" +1  ^           a"],-     Just [" +5  ^           d"],-     Just [" +0   ^          (abc|def)"],-     Just [" +1   ^          a"],-     Just [" +5   ^          d"],-     Just [" +0    ^         (abc|def)"],-     Just [" +1    ^         a"],-     Just [" +5    ^         d"],-     Just [" +6    ^^        e"],-     Just [" +7    ^ ^       f"],-     Just [" +8    ^  ^      )"],-     Just [" +9    ^  ^      x"],-     Just [" +0     ^        (abc|def)"],-     Just [" +1     ^        a"],-     Just [" +5     ^        d"],-     Just [" +0      ^       (abc|def)"],-     Just [" +1      ^       a"],-     Just [" +5      ^       d"],-     Just [" +0       ^      (abc|def)"],-     Just [" +1       ^      a"],-     Just [" +5       ^      d"],-     Just [" +0        ^     (abc|def)"],-     Just [" +1        ^     a"],-     Just [" +5        ^     d"],-     Nothing]-,-testRegex "(ab|cd){3,4}" [ERROR]-    ["ababab",-     "abcdabcd",-     "abcdcdcdcdcd"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Options:"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["--->ababab"],-     Just [" +0 ^          (ab|cd){3,4}"],-     Just [" +1 ^          a"],-     Just [" +2 ^^         b"],-     Just [" +3 ^ ^        |"],-     Just [" +1 ^ ^        a"],-     Just [" +2 ^  ^       b"],-     Just [" +3 ^   ^      |"],-     Just [" +1 ^   ^      a"],-     Just [" +2 ^    ^     b"],-     Just [" +3 ^     ^    |"],-     Just [" +1 ^     ^    a"],-     Just [" +4 ^     ^    c"],-     Just ["+12 ^     ^    "],-     Just [" 0: ababab"],-     Just [" 1: ab"],-     Just ["--->abcdabcd"],-     Just [" +0 ^            (ab|cd){3,4}"],-     Just [" +1 ^            a"],-     Just [" +2 ^^           b"],-     Just [" +3 ^ ^          |"],-     Just [" +1 ^ ^          a"],-     Just [" +4 ^ ^          c"],-     Just [" +5 ^  ^         d"],-     Just [" +6 ^   ^        )"],-     Just [" +1 ^   ^        a"],-     Just [" +2 ^    ^       b"],-     Just [" +3 ^     ^      |"],-     Just [" +1 ^     ^      a"],-     Just [" +4 ^     ^      c"],-     Just [" +5 ^      ^     d"],-     Just [" +6 ^       ^    )"],-     Just ["+12 ^       ^    "],-     Just [" 0: abcdabcd"],-     Just [" 1: cd"],-     Just ["--->abcdcdcdcdcd"],-     Just [" +0 ^                (ab|cd){3,4}"],-     Just [" +1 ^                a"],-     Just [" +2 ^^               b"],-     Just [" +3 ^ ^              |"],-     Just [" +1 ^ ^              a"],-     Just [" +4 ^ ^              c"],-     Just [" +5 ^  ^             d"],-     Just [" +6 ^   ^            )"],-     Just [" +1 ^   ^            a"],-     Just [" +4 ^   ^            c"],-     Just [" +5 ^    ^           d"],-     Just [" +6 ^     ^          )"],-     Just [" +1 ^     ^          a"],-     Just [" +4 ^     ^          c"],-     Just [" +5 ^      ^         d"],-     Just [" +6 ^       ^        )"],-     Just ["+12 ^       ^        "],-     Just [" 0: abcdcdcd"],-     Just [" 1: cd"]]-,-testRegex "([ab]{,4}c|xy)" [ERROR]-    ["Note: that { does NOT introduce a quantifier"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Options:"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["--->Note: that { does NOT introduce a quantifier"],-     Just [" +0 ^                                                ([ab]{,4}c|xy)"],-     Just [" +1 ^                                                [ab]"],-     Just ["+11 ^                                                x"],-     Just [" +0  ^                                               ([ab]{,4}c|xy)"],-     Just [" +1  ^                                               [ab]"],-     Just ["+11  ^                                               x"],-     Just [" +0   ^                                              ([ab]{,4}c|xy)"],-     Just [" +1   ^                                              [ab]"],-     Just ["+11   ^                                              x"],-     Just [" +0    ^                                             ([ab]{,4}c|xy)"],-     Just [" +1    ^                                             [ab]"],-     Just ["+11    ^                                             x"],-     Just [" +0     ^                                            ([ab]{,4}c|xy)"],-     Just [" +1     ^                                            [ab]"],-     Just ["+11     ^                                            x"],-     Just [" +0      ^                                           ([ab]{,4}c|xy)"],-     Just [" +1      ^                                           [ab]"],-     Just ["+11      ^                                           x"],-     Just [" +0       ^                                          ([ab]{,4}c|xy)"],-     Just [" +1       ^                                          [ab]"],-     Just ["+11       ^                                          x"],-     Just [" +0        ^                                         ([ab]{,4}c|xy)"],-     Just [" +1        ^                                         [ab]"],-     Just ["+11        ^                                         x"],-     Just [" +0         ^                                        ([ab]{,4}c|xy)"],-     Just [" +1         ^                                        [ab]"],-     Just [" +5         ^^                                       {"],-     Just ["+11         ^                                        x"],-     Just [" +0          ^                                       ([ab]{,4}c|xy)"],-     Just [" +1          ^                                       [ab]"],-     Just ["+11          ^                                       x"],-     Just [" +0           ^                                      ([ab]{,4}c|xy)"],-     Just [" +1           ^                                      [ab]"],-     Just ["+11           ^                                      x"],-     Just [" +0            ^                                     ([ab]{,4}c|xy)"],-     Just [" +1            ^                                     [ab]"],-     Just ["+11            ^                                     x"],-     Just [" +0             ^                                    ([ab]{,4}c|xy)"],-     Just [" +1             ^                                    [ab]"],-     Just ["+11             ^                                    x"],-     Just [" +0              ^                                   ([ab]{,4}c|xy)"],-     Just [" +1              ^                                   [ab]"],-     Just ["+11              ^                                   x"],-     Just [" +0               ^                                  ([ab]{,4}c|xy)"],-     Just [" +1               ^                                  [ab]"],-     Just ["+11               ^                                  x"],-     Just [" +0                ^                                 ([ab]{,4}c|xy)"],-     Just [" +1                ^                                 [ab]"],-     Just ["+11                ^                                 x"],-     Just [" +0                 ^                                ([ab]{,4}c|xy)"],-     Just [" +1                 ^                                [ab]"],-     Just ["+11                 ^                                x"],-     Just [" +0                  ^                               ([ab]{,4}c|xy)"],-     Just [" +1                  ^                               [ab]"],-     Just ["+11                  ^                               x"],-     Just [" +0                   ^                              ([ab]{,4}c|xy)"],-     Just [" +1                   ^                              [ab]"],-     Just ["+11                   ^                              x"],-     Just [" +0                    ^                             ([ab]{,4}c|xy)"],-     Just [" +1                    ^                             [ab]"],-     Just ["+11                    ^                             x"],-     Just [" +0                     ^                            ([ab]{,4}c|xy)"],-     Just [" +1                     ^                            [ab]"],-     Just ["+11                     ^                            x"],-     Just [" +0                      ^                           ([ab]{,4}c|xy)"],-     Just [" +1                      ^                           [ab]"],-     Just ["+11                      ^                           x"],-     Just [" +0                       ^                          ([ab]{,4}c|xy)"],-     Just [" +1                       ^                          [ab]"],-     Just ["+11                       ^                          x"],-     Just [" +0                        ^                         ([ab]{,4}c|xy)"],-     Just [" +1                        ^                         [ab]"],-     Just ["+11                        ^                         x"],-     Just [" +0                         ^                        ([ab]{,4}c|xy)"],-     Just [" +1                         ^                        [ab]"],-     Just ["+11                         ^                        x"],-     Just [" +0                          ^                       ([ab]{,4}c|xy)"],-     Just [" +1                          ^                       [ab]"],-     Just ["+11                          ^                       x"],-     Just [" +0                           ^                      ([ab]{,4}c|xy)"],-     Just [" +1                           ^                      [ab]"],-     Just ["+11                           ^                      x"],-     Just [" +0                            ^                     ([ab]{,4}c|xy)"],-     Just [" +1                            ^                     [ab]"],-     Just ["+11                            ^                     x"],-     Just [" +0                             ^                    ([ab]{,4}c|xy)"],-     Just [" +1                             ^                    [ab]"],-     Just ["+11                             ^                    x"],-     Just [" +0                              ^                   ([ab]{,4}c|xy)"],-     Just [" +1                              ^                   [ab]"],-     Just ["+11                              ^                   x"],-     Just [" +0                               ^                  ([ab]{,4}c|xy)"],-     Just [" +1                               ^                  [ab]"],-     Just ["+11                               ^                  x"],-     Just [" +0                                ^                 ([ab]{,4}c|xy)"],-     Just [" +1                                ^                 [ab]"],-     Just ["+11                                ^                 x"],-     Just [" +0                                 ^                ([ab]{,4}c|xy)"],-     Just [" +1                                 ^                [ab]"],-     Just [" +5                                 ^^               {"],-     Just ["+11                                 ^                x"],-     Just [" +0                                  ^               ([ab]{,4}c|xy)"],-     Just [" +1                                  ^               [ab]"],-     Just ["+11                                  ^               x"],-     Just [" +0                                   ^              ([ab]{,4}c|xy)"],-     Just [" +1                                   ^              [ab]"],-     Just ["+11                                   ^              x"],-     Just [" +0                                    ^             ([ab]{,4}c|xy)"],-     Just [" +1                                    ^             [ab]"],-     Just ["+11                                    ^             x"],-     Just [" +0                                     ^            ([ab]{,4}c|xy)"],-     Just [" +1                                     ^            [ab]"],-     Just [" +5                                     ^^           {"],-     Just ["+11                                     ^            x"],-     Just [" +0                                      ^           ([ab]{,4}c|xy)"],-     Just [" +1                                      ^           [ab]"],-     Just ["+11                                      ^           x"],-     Just [" +0                                       ^          ([ab]{,4}c|xy)"],-     Just [" +1                                       ^          [ab]"],-     Just ["+11                                       ^          x"],-     Just [" +0                                        ^         ([ab]{,4}c|xy)"],-     Just [" +1                                        ^         [ab]"],-     Just ["+11                                        ^         x"],-     Just [" +0                                         ^        ([ab]{,4}c|xy)"],-     Just [" +1                                         ^        [ab]"],-     Just ["+11                                         ^        x"],-     Just [" +0                                          ^       ([ab]{,4}c|xy)"],-     Just [" +1                                          ^       [ab]"],-     Just ["+11                                          ^       x"],-     Just [" +0                                           ^      ([ab]{,4}c|xy)"],-     Just [" +1                                           ^      [ab]"],-     Just ["+11                                           ^      x"],-     Just [" +0                                            ^     ([ab]{,4}c|xy)"],-     Just [" +1                                            ^     [ab]"],-     Just ["+11                                            ^     x"],-     Just [" +0                                             ^    ([ab]{,4}c|xy)"],-     Just [" +1                                             ^    [ab]"],-     Just ["+11                                             ^    x"],-     Nothing]-,-testRegex "([ab]{1,4}c|xy){4,5}?123" [ERROR]-    ["aacaacaacaacaac123"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["Options:"],-     Just ["No first char"],-     Just ["Need char = '3'"],-     Just ["--->aacaacaacaacaac123"],-     Just [" +0 ^                      ([ab]{1,4}c|xy){4,5}?"],-     Just [" +1 ^                      [ab]{1,4}"],-     Just ["+10 ^ ^                    c"],-     Just ["+11 ^  ^                   |"],-     Just [" +1 ^  ^                   [ab]{1,4}"],-     Just ["+10 ^    ^                 c"],-     Just ["+11 ^     ^                |"],-     Just [" +1 ^     ^                [ab]{1,4}"],-     Just ["+10 ^       ^              c"],-     Just ["+11 ^        ^             |"],-     Just [" +1 ^        ^             [ab]{1,4}"],-     Just ["+10 ^          ^           c"],-     Just ["+11 ^           ^          |"],-     Just ["+21 ^           ^          1"],-     Just [" +1 ^           ^          [ab]{1,4}"],-     Just ["+10 ^             ^        c"],-     Just ["+11 ^              ^       |"],-     Just ["+21 ^              ^       1"],-     Just ["+22 ^               ^      2"],-     Just ["+23 ^                ^     3"],-     Just ["+24 ^                 ^    "],-     Just [" 0: aacaacaacaacaac123"],-     Just [" 1: aac"]]-,-testRegex "\\b.*" [ERROR]-    ["ab cd\\>1"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0:  cd"]]-,-testRegex "\\b.*" [ERROR]-    ["ab cd\\>1"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0:  cd"]]-,-testRegex "(?!.bcd).*" [ERROR]-    ["Xbcd12345"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: bcd12345"]]-,-testRegex "abcde" [ERROR]-    ["ab\\P",-     "abc\\P",-     "abcd\\P",-     "abcde\\P",-     "the quick brown abc\\P",-     "** Failers\\P",-     "the quick brown abxyz fox\\P"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'e'"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just [" 0: abcde"],-     Just ["Partial match"],-     Nothing,-     Nothing]-,-testRegex "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\\d\\d$" [ERROR]-    ["13/05/04\\P",-     "13/5/2004\\P",-     "02/05/09\\P",-     "1\\P",-     "1/2\\P",-     "1/2/0\\P",-     "1/2/04\\P",-     "0\\P",-     "02/\\P",-     "02/0\\P",-     "02/1\\P",-     "** Failers\\P",-     "\\P",-     "123\\P",-     "33/4/04\\P",-     "3/13/04\\P",-     "0/1/2003\\P",-     "0/\\P",-     "02/0/\\P",-     "02/13\\P"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = '/'"],-     Just [" 0: 13/05/04"],-     Just [" 1: 13"],-     Just [" 2: 05"],-     Just [" 0: 13/5/2004"],-     Just [" 1: 13"],-     Just [" 2: 5"],-     Just [" 3: 20"],-     Just [" 0: 02/05/09"],-     Just [" 1: 02"],-     Just [" 2: 05"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just [" 0: 1/2/04"],-     Just [" 1: 1"],-     Just [" 2: 2"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just ["Partial match"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "0{0,2}ABC" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'C'"]]-,-testRegex "\\d{3,}ABC" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'C'"]]-,-testRegex "\\d*ABC" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'C'"]]-,-testRegex "[abc]+DE" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'E'"]]-,-testRegex "[abc]?123" [ERROR]-    ["123\\P",-     "a\\P",-     "b\\P",-     "c\\P",-     "c12\\P",-     "c123\\P"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = '3'"],-     Just [" 0: 123"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just [" 0: c123"]]-,-testRegex "^(?:\\d){3,5}X" [ERROR]-    ["1\\P",-     "123\\P",-     "123X",-     "1234\\P",-     "1234X",-     "12345\\P",-     "12345X",-     "*** Failers",-     "1X",-     "123456\\P"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = 'X'"],-     Just ["Partial match"],-     Just ["Partial match"],-     Just [" 0: 123X"],-     Just ["Partial match"],-     Just [" 0: 1234X"],-     Just ["Partial match"],-     Just [" 0: 12345X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "abc" [ERROR]-    ["<testsavedregex",-     "abc",-     "** Failers",-     "bca"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just ["Compiled regex written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex loaded from testsavedregex"],-     Just ["No study data"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "abc" [ERROR]-    ["<testsavedregex",-     "abc",-     "** Failers",-     "bca"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just ["Compiled regex written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex (byte-inverted) loaded from testsavedregex"],-     Just ["No study data"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "(a|b)" [ERROR]-    ["<testsavedregex",-     "abc",-     "** Failers",-     "def"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b "],-     Just ["Compiled regex written to testsavedregex"],-     Just ["Study data written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex loaded from testsavedregex"],-     Just ["Study data loaded from testsavedregex"],-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: a"],-     Just [" 1: a"],-     Nothing]-,-testRegex "(a|b)" [ERROR]-    ["<testsavedregex",-     "abc",-     "** Failers",-     "def"]-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b "],-     Just ["Compiled regex written to testsavedregex"],-     Just ["Study data written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex (byte-inverted) loaded from testsavedregex"],-     Just ["Study data loaded from testsavedregex"],-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: a"],-     Just [" 1: a"],-     Nothing]-,-testRegex "ERROR" []-    ["<!DOCTYPE seite SYSTEM \"http://www.lco.lineas.de/xmlCms.dtd\">\\n<seite>\\n<dokumenteninformation>\\n<seitentitel>Partner der LCO</seitentitel>\\n<sprache>de</sprache>\\n<seitenbeschreibung>Partner der LINEAS Consulting\\nGmbH</seitenbeschreibung>\\n<schluesselworte>LINEAS Consulting GmbH Hamburg\\nPartnerfirmen</schluesselworte>\\n<revisit>30 days</revisit>\\n<robots>index,follow</robots>\\n<menueinformation>\\n<aktiv>ja</aktiv>\\n<menueposition>3</menueposition>\\n<menuetext>Partner</menuetext>\\n</menueinformation>\\n<lastedited>\\n<autor>LCO</autor>\\n<firma>LINEAS Consulting</firma>\\n<datum>15.10.2003</datum>\\n</lastedited>\\n</dokumenteninformation>\\n<inhalt>\\n\\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\\nGmbH</absatzueberschrift>\\n\\n<absatz><link ziel=\"http://www.ca.com/\" zielfenster=\"_blank\">\\n<bild name=\"logo_ca.gif\" rahmen=\"no\"/></link> <link\\nziel=\"http://www.ey.com/\" zielfenster=\"_blank\"><bild\\nname=\"logo_euy.gif\" rahmen=\"no\"/></link>\\n</absatz>\\n\\n<absatz><link ziel=\"http://www.cisco.de/\" zielfenster=\"_blank\">\\n<bild name=\"logo_cisco.gif\" rahmen=\"ja\"/></link></absatz>\\n\\n<absatz><link ziel=\"http://www.atelion.de/\"\\nzielfenster=\"_blank\"><bild\\nname=\"logo_atelion.gif\" rahmen=\"no\"/></link>\\n</absatz>\\n\\n<absatz><link ziel=\"http://www.line-information.de/\"\\nzielfenster=\"_blank\">\\n<bild name=\"logo_line_information.gif\" rahmen=\"no\"/></link>\\n</absatz>\\n\\n<absatz><bild name=\"logo_aw.gif\" rahmen=\"no\"/></absatz>\\n\\n<absatz><link ziel=\"http://www.incognis.de/\"\\nzielfenster=\"_blank\"><bild\\nname=\"logo_incognis.gif\" rahmen=\"no\"/></link></absatz>\\n\\n<absatz><link ziel=\"http://www.addcraft.com/\"\\nzielfenster=\"_blank\"><bild\\nname=\"logo_addcraft.gif\" rahmen=\"no\"/></link></absatz>\\n\\n<absatz><link ziel=\"http://www.comendo.com/\"\\nzielfenster=\"_blank\"><bild\\nname=\"logo_comendo.gif\" rahmen=\"no\"/></link></absatz>\\n\\n</inhalt>\\n</seite>"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["Options: multiline dotall"],-     Just ["First char = '<'"],-     Just ["Need char = '>'"],-     Just [" 0: <seite>\\x0a<dokumenteninformation>\\x0a<seitentitel>Partner der LCO</seitentitel>\\x0a<sprache>de</sprache>\\x0a<seitenbeschreibung>Partner der LINEAS Consulting\\x0aGmbH</seitenbeschreibung>\\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\\x0aPartnerfirmen</schluesselworte>\\x0a<revisit>30 days</revisit>\\x0a<robots>index,follow</robots>\\x0a<menueinformation>\\x0a<aktiv>ja</aktiv>\\x0a<menueposition>3</menueposition>\\x0a<menuetext>Partner</menuetext>\\x0a</menueinformation>\\x0a<lastedited>\\x0a<autor>LCO</autor>\\x0a<firma>LINEAS Consulting</firma>\\x0a<datum>15.10.2003</datum>\\x0a</lastedited>\\x0a</dokumenteninformation>\\x0a<inhalt>\\x0a\\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\\x0aGmbH</absatzueberschrift>\\x0a\\x0a<absatz><link ziel=\"http://www.ca.com/\" zielfenster=\"_blank\">\\x0a<bild name=\"logo_ca.gif\" rahmen=\"no\"/></link> <link\\x0aziel=\"http://www.ey.com/\" zielfenster=\"_blank\"><bild\\x0aname=\"logo_euy.gif\" rahmen=\"no\"/></link>\\x0a</absatz>\\x0a\\x0a<absatz><link ziel=\"http://www.cisco.de/\" zielfenster=\"_blank\">\\x0a<bild name=\"logo_cisco.gif\" rahmen=\"ja\"/></link></absatz>\\x0a\\x0a<absatz><link ziel=\"http://www.atelion.de/\"\\x0azielfenster=\"_blank\"><bild\\x0aname=\"logo_atelion.gif\" rahmen=\"no\"/></link>\\x0a</absatz>\\x0a\\x0a<absatz><link ziel=\"http://www.line-information.de/\"\\x0azielfenster=\"_blank\">\\x0a<bild name=\"logo_line_information.gif\" rahmen=\"no\"/></link>\\x0a</absatz>\\x0a\\x0a<absatz><bild name=\"logo_aw.gif\" rahmen=\"no\"/></absatz>\\x0a\\x0a<absatz><link ziel=\"http://www.incognis.de/\"\\x0azielfenster=\"_blank\"><bild\\x0aname=\"logo_incognis.gif\" rahmen=\"no\"/></link></absatz>\\x0a\\x0a<absatz><link ziel=\"http://www.addcraft.com/\"\\x0azielfenster=\"_blank\"><bild\\x0aname=\"logo_addcraft.gif\" rahmen=\"no\"/></link></absatz>\\x0a\\x0a<absatz><link ziel=\"http://www.comendo.com/\"\\x0azielfenster=\"_blank\"><bild\\x0aname=\"logo_comendo.gif\" rahmen=\"no\"/></link></absatz>\\x0a\\x0a</inhalt>\\x0a</seite>"],-     Just [" 1: seite"],-     Just [" 2: \\x0a"],-     Just [" 3: seite"]]-,-testRegex "^a" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "line\\nbreak" [ERROR]-    ["this is a line\\nbreak",-     "line one\\nthis is a line\\nbreak in the second line"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Contains explicit CR or LF match"],-     Just ["No options"],-     Just ["First char = 'l'"],-     Just ["Need char = 'k'"],-     Just [" 0: line\\x0abreak"],-     Just [" 0: line\\x0abreak"]]-,-testRegex "line\\nbreak" [ERROR]-    ["this is a line\\nbreak",-     "** Failers",-     "line one\\nthis is a line\\nbreak in the second line"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Contains explicit CR or LF match"],-     Just ["Options: firstline"],-     Just ["First char = 'l'"],-     Just ["Need char = 'k'"],-     Just [" 0: line\\x0abreak"],-     Nothing,-     Nothing]-,-testRegex "line\\nbreak" [ERROR]-    ["this is a line\\nbreak",-     "** Failers",-     "line one\\nthis is a line\\nbreak in the second line"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Contains explicit CR or LF match"],-     Just ["Options: multiline firstline"],-     Just ["First char = 'l'"],-     Just ["Need char = 'k'"],-     Just [" 0: line\\x0abreak"],-     Nothing,-     Nothing]-,-testRegex "ab.cd" [ERROR]-    ["ab-cd",-     "ab=cd",-     "** Failers",-     "ab\\ncd"]-    [Just [" 0: ab-cd"],-     Just [" 0: ab=cd"],-     Just ["No match: POSIX code 17: match failed"],-     Just ["No match: POSIX code 17: match failed"]]-,-testRegex "ab.cd" [ERROR]-    ["ab-cd",-     "ab=cd",-     "ab\\ncd"]-    [Just [" 0: ab-cd"],-     Just [" 0: ab=cd"],-     Just [" 0: ab\\x0acd"]]-,-testRegex "(?i)(?-i)AbCd" [ERROR]-    ["AbCd",-     "** Failers",-     "abcd"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'A'"],-     Just ["Need char = 'd'"],-     Just [" 0: AbCd"],-     Nothing,-     Nothing]-,-testRegex "a{11111111111111111111}" [ERROR]-    []-    [Just ["Failed: number too big in {} quantifier at offset 22"]]-,-testRegex "(){64294967295}" [ERROR]-    []-    [Just ["Failed: number too big in {} quantifier at offset 14"]]-,-testRegex "(){2,4294967295}" [ERROR]-    []-    [Just ["Failed: number too big in {} quantifier at offset 15"]]-,-testRegex "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\\1B" [ERROR]-    ["abcdefghijklAkB"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["No options"],-     Just ["First char = 'a' (caseless)"],-     Just ["Need char = 'B'"],-     Just [" 0: abcdefghijklAkB"],-     Just [" 1: k"]]-,-testRegex "(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\\11B" [ERROR]-    ["abcdefghijklAkB"]-    [Just ["Capturing subpattern count = 12"],-     Just ["Max back reference = 11"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'B'"],-     Just [" 0: abcdefghijklAkB"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 3: c"],-     Just [" 4: d"],-     Just [" 5: e"],-     Just [" 6: f"],-     Just [" 7: g"],-     Just [" 8: h"],-     Just [" 9: i"],-     Just ["10: j"],-     Just ["11: k"],-     Just ["12: l"]]-,-testRegex "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\\11B" [ERROR]-    ["abcdefghijklAkB"]-    [Just ["Capturing subpattern count = 12"],-     Just ["Max back reference = 11"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'B'"],-     Just [" 0: abcdefghijklAkB"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 3: c"],-     Just [" 4: d"],-     Just [" 5: e"],-     Just [" 6: f"],-     Just [" 7: g"],-     Just [" 8: h"],-     Just [" 9: i"],-     Just ["10: j"],-     Just ["11: k"],-     Just ["12: l"]]-,-testRegex "(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)" [ERROR]-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Just ["Capturing subpattern count = 101"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'a'"],-     Just ["Matched, but too many substrings"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: a"],-     Just [" 2: a"],-     Just [" 3: a"],-     Just [" 4: a"],-     Just [" 5: a"],-     Just [" 6: a"],-     Just [" 7: a"],-     Just [" 8: a"],-     Just [" 9: a"],-     Just ["10: a"],-     Just ["11: a"],-     Just ["12: a"],-     Just ["13: a"],-     Just ["14: a"]]-,-testRegex "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)" [ERROR]-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Just ["Capturing subpattern count = 101"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'a'"],-     Just ["Matched, but too many substrings"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: a"],-     Just [" 2: a"],-     Just [" 3: a"],-     Just [" 4: a"],-     Just [" 5: a"],-     Just [" 6: a"],-     Just [" 7: a"],-     Just [" 8: a"],-     Just [" 9: a"],-     Just ["10: a"],-     Just ["11: a"],-     Just ["12: a"],-     Just ["13: a"],-     Just ["14: a"]]-,-testRegex "[^()]*(?:\\((?R)\\)[^()]*)*" [ERROR]-    ["(this(and)that",-     "(this(and)that)",-     "(this(and)that)stuff"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: "],-     Just [" 0: (this(and)that)"],-     Just [" 0: (this(and)that)stuff"]]-,-testRegex "[^()]*(?:\\((?>(?R))\\)[^()]*)*" [ERROR]-    ["(this(and)that",-     "(this(and)that)"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: "],-     Just [" 0: (this(and)that)"]]-,-testRegex "[^()]*(?:\\((?R)\\))*[^()]*" [ERROR]-    ["(this(and)that",-     "(this(and)that)"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: "],-     Just [" 0: (this(and)that)"]]-,-testRegex "(?:\\((?R)\\))*[^()]*" [ERROR]-    ["(this(and)that",-     "(this(and)that)",-     "((this))"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: ((this))"]]-,-testRegex "(?:\\((?R)\\))|[^()]*" [ERROR]-    ["(this(and)that",-     "(this(and)that)",-     "(this)",-     "((this))"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: (this)"],-     Just [" 0: ((this))"]]-,-testRegex "a(b)c" [ERROR]-    ["abc"]-    [Just ["Matched with REG_NOSUB"]]-,-testRegex "a(?P<name>b)c" [ERROR]-    ["abc"]-    [Just ["Matched with REG_NOSUB"]]-,-testRegex "\\x{100}" [ERROR]-    []-    [Just ["Failed: character value in \\x{...} sequence is too large at offset 6"]]-,-testRegex "\\x{0000ff}" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 255"],-     Just ["No need char"]]-,-testRegex "^((?P<A>a1)|(?P<A>a2)b)" [ERROR]-    []-    [Just ["Failed: two named subpatterns have the same name at offset 17"]]-,-testRegex "^((?P<A>a1)|(?P<A>a2)b)" [ERROR]-    ["a1b\\CA",-     "a2b\\CA",-     "** Failers",-     "a1b\\CZ\\CA"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: anchored dupnames"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: a1"],-     Just [" 1: a1"],-     Just [" 2: a1"],-     Just [" 0: a2b"],-     Just [" 1: a2b"],-     Just [" 2: <unset>"],-     Just [" 3: a2"],-     Nothing,-     Just ["no parentheses with name \"Z\""],-     Just [" 0: a1"],-     Just [" 1: a1"],-     Just [" 2: a1"],-     Just ["copy substring Z failed -7"]]-,-testRegex "^(?P<A>a)(?P<A>b)" [ERROR]-    ["ab\\CA"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: anchored dupnames"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 2: b"]]-,-testRegex "^(?P<A>a)(?P<A>b)|cd" [ERROR]-    ["ab\\CA",-     "cd\\CA"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: dupnames"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 0: cd"],-     Just ["copy substring A failed -7"]]-,-testRegex "^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)" [ERROR]-    ["cdefgh\\CA"]-    [Just ["Capturing subpattern count = 4"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: dupnames"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: cdefgh"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: ef"],-     Just [" 4: gh"]]-,-testRegex "^((?P<A>a1)|(?P<A>a2)b)" [ERROR]-    ["a1b\\GA",-     "a2b\\GA",-     "** Failers",-     "a1b\\GZ\\GA"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: anchored dupnames"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: a1"],-     Just [" 1: a1"],-     Just [" 2: a1"],-     Just [" 0: a2b"],-     Just [" 1: a2b"],-     Just [" 2: <unset>"],-     Just [" 3: a2"],-     Nothing,-     Just ["no parentheses with name \"Z\""],-     Just [" 0: a1"],-     Just [" 1: a1"],-     Just [" 2: a1"],-     Just ["copy substring Z failed -7"]]-,-testRegex "^(?P<A>a)(?P<A>b)" [ERROR]-    ["ab\\GA"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: anchored dupnames"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 2: b"]]-,-testRegex "^(?P<A>a)(?P<A>b)|cd" [ERROR]-    ["ab\\GA",-     "cd\\GA"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: dupnames"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 0: cd"],-     Just ["copy substring A failed -7"]]-,-testRegex "^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)" [ERROR]-    ["cdefgh\\GA"]-    [Just ["Capturing subpattern count = 4"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: dupnames"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: cdefgh"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: ef"],-     Just [" 4: gh"]]-,-testRegex "(?J)^((?P<A>a1)|(?P<A>a2)b)" [ERROR]-    ["a1b\\CA",-     "a2b\\CA"]-    [Just ["Capturing subpattern count = 3"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: anchored dupnames"],-     Just ["Duplicate name status changes"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: a1"],-     Just [" 1: a1"],-     Just [" 2: a1"],-     Just [" 0: a2b"],-     Just [" 1: a2b"],-     Just [" 2: <unset>"],-     Just [" 3: a2"]]-,-testRegex "^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)" [ERROR]-    []-    [Just ["Failed: two named subpatterns have the same name at offset 37"]]-,-testRegex "ERROR" []-    ["set in the pattern's options; consequently pcre_get_named_substring() produces",-     "a random value. /Ix"]-    [Just ["set in the pattern's options; consequently pcre_get_named_substring() produces"],-     Just ["a random value. /Ix"],-     Just ["Capturing subpattern count = 1"],-     Just ["Options: extended"],-     Just ["First char = 'I'"],-     Just ["Need char = 'e'"]]-,-testRegex "^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)" [ERROR]-    ["a bc d\\CA\\CB\\CC"]-    [Just ["Capturing subpattern count = 4"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: anchored"],-     Just ["Duplicate name status changes"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: a bc d"],-     Just [" 1: a"],-     Just [" 2: b"],-     Just [" 3: c"],-     Just [" 4: d"]]-,-testRegex "^(?P<A>a)?(?(A)a|b)" [ERROR]-    ["aabc",-     "bc",-     "** Failers",-     "abc"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 0: b"],-     Nothing,-     Nothing]-,-testRegex "(?:(?(ZZ)a|b)(?P<ZZ>X))+" [ERROR]-    ["bXaX"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'X'"],-     Just [" 0: bXaX"],-     Just [" 1: X"]]-,-testRegex "(?:(?(2y)a|b)(X))+" [ERROR]-    []-    [Just ["Failed: reference to non-existent subpattern at offset 9"]]-,-testRegex "(?:(?(ZA)a|b)(?P<ZZ>X))+" [ERROR]-    []-    [Just ["Failed: reference to non-existent subpattern at offset 9"]]-,-testRegex "(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+" [ERROR]-    ["bbXaaX"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'X'"],-     Just [" 0: bbXaaX"],-     Just [" 1: X"]]-,-testRegex "(?:(?(ZZ)a|\\(b\\))\\\\(?P<ZZ>X))+" [ERROR]-    ["(b)\\\\Xa\\\\X"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'X'"],-     Just [" 0: (b)\\Xa\\X"],-     Just [" 1: X"]]-,-testRegex "(?P<ABC" [ERROR]-    []-    [Just ["Failed: syntax error in subpattern name (missing terminator) at offset 7"]]-,-testRegex "(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+" [ERROR]-    ["bXXaYYaY",-     "bXYaXXaX"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: bXXaYYaY"],-     Just [" 1: Y"],-     Just [" 0: bX"],-     Just [" 1: X"]]-,-testRegex "()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+" [ERROR]-    ["bXXaYYaY"]-    [Just ["Capturing subpattern count = 10"],-     Just ["Max back reference = 10"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: bXXaYYaY"],-     Just [" 1: "],-     Just [" 2: "],-     Just [" 3: "],-     Just [" 4: "],-     Just [" 5: "],-     Just [" 6: "],-     Just [" 7: "],-     Just [" 8: "],-     Just [" 9: "],-     Just ["10: Y"]]-,-testRegex "\\777" [ERROR]-    []-    [Just ["Failed: octal value is greater than \\377 (not in UTF-8 mode) at offset 3"]]-,-testRegex "\\s*,\\s*" [ERROR]-    ["\\x0b,\\x0b",-     "\\x0c,\\x0d"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = ','"],-     Just ["Starting byte set: \\x09 \\x0a \\x0c \\x0d \\x20 , "],-     Just [" 0: ,"],-     Just [" 0: \\x0c,\\x0d"]]-,-testRegex "^abc" [ERROR]-    ["xyz\\nabc",-     "xyz\\nabc\\<lf>",-     "xyz\\r\\nabc\\<lf>",-     "xyz\\rabc\\<cr>",-     "xyz\\r\\nabc\\<crlf>",-     "** Failers",-     "xyz\\nabc\\<cr>",-     "xyz\\r\\nabc\\<cr>",-     "xyz\\nabc\\<crlf>",-     "xyz\\rabc\\<crlf>",-     "xyz\\rabc\\<lf>"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "abc$" [ERROR]-    ["xyzabc",-     "xyzabc\\n",-     "xyzabc\\npqr",-     "xyzabc\\r\\<cr>",-     "xyzabc\\rpqr\\<cr>",-     "xyzabc\\r\\n\\<crlf>",-     "xyzabc\\r\\npqr\\<crlf>",-     "** Failers",-     "xyzabc\\r",-     "xyzabc\\rpqr",-     "xyzabc\\r\\n",-     "xyzabc\\r\\npqr"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["Forced newline sequence: LF"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^abc" [ERROR]-    ["xyz\\rabcdef",-     "xyz\\nabcdef\\<lf>",-     "** Failers",-     "xyz\\nabcdef"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["Forced newline sequence: CR"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "^abc" [ERROR]-    ["xyz\\nabcdef",-     "xyz\\rabcdef\\<cr>",-     "** Failers",-     "xyz\\rabcdef"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["Forced newline sequence: LF"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "^abc" [ERROR]-    ["xyz\\r\\nabcdef",-     "xyz\\rabcdef\\<cr>",-     "** Failers",-     "xyz\\rabcdef"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: multiline"],-     Just ["Forced newline sequence: CRLF"],-     Just ["First char at start or follows newline"],-     Just ["Need char = 'c'"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "^abc" [ERROR]-    []-    [Just ["Unknown newline type at: <bad>"]]-,-testRegex "abc" [ERROR]-    ["xyz\\rabc\\<bad>",-     "abc"]-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["First char = 'a'"],-     Just ["Need char = 'c'"],-     Just ["Unknown newline type at: <bad>"],-     Just [" 0: abc"]]-,-testRegex ".*" [ERROR]-    ["abc\\ndef",-     "abc\\rdef",-     "abc\\r\\ndef",-     "\\<cr>abc\\ndef",-     "\\<cr>abc\\rdef",-     "\\<cr>abc\\r\\ndef",-     "\\<crlf>abc\\ndef",-     "\\<crlf>abc\\rdef",-     "\\<crlf>abc\\r\\ndef"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options:"],-     Just ["Forced newline sequence: LF"],-     Just ["First char at start or follows newline"],-     Just ["No need char"],-     Just [" 0: abc"],-     Just [" 0: abc\\x0ddef"],-     Just [" 0: abc\\x0d"],-     Just [" 0: abc\\x0adef"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc\\x0adef"],-     Just [" 0: abc\\x0ddef"],-     Just [" 0: abc"]]-,-testRegex "\\w+(.)(.)?def" [ERROR]-    ["abc\\ndef",-     "abc\\rdef",-     "abc\\r\\ndef"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Partial matching not supported"],-     Just ["Options: dotall"],-     Just ["No first char"],-     Just ["Need char = 'f'"],-     Just [" 0: abc\\x0adef"],-     Just [" 1: \\x0a"],-     Just [" 0: abc\\x0ddef"],-     Just [" 1: \\x0d"],-     Just [" 0: abc\\x0d\\x0adef"],-     Just [" 1: \\x0d"],-     Just [" 2: \\x0a"]]-,-testRegex "ERROR" []-    ["/* this is a C style comment */\\M"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Minimum match() limit = 120"],-     Just ["Minimum match() recursion limit = 6"],-     Just [" 0: /* this is a C style comment */"],-     Just [" 1: /* this is a C style comment */"]]-,-testRegex "(?P<B>25[0-5]|2[0-4]\\d|[01]?\\d?\\d)(?:\\.(?P>B)){3}" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = '.'"]]-,-testRegex "ERROR" []-    ["()()()()()()()()()()()()()()()()()()()()",-     "()()()()()()()()()()()()()()()()()()()()",-     "()()()()()()()()()()()()()()()()()()()()",-     "()()()()()()()()()()()()()()()()()()()()",-     "(.(.))/Ix",-     "XY\\O400"]-    [Just [" ()()()()()()()()()()()()()()()()()()()()"],-     Just [" ()()()()()()()()()()()()()()()()()()()()"],-     Just [" ()()()()()()()()()()()()()()()()()()()()"],-     Just [" ()()()()()()()()()()()()()()()()()()()()"],-     Just [" (.(.))/Ix"],-     Just ["Capturing subpattern count = 102"],-     Just ["Options: extended"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: XY"],-     Just [" 1: "],-     Just [" 2: "],-     Just [" 3: "],-     Just [" 4: "],-     Just [" 5: "],-     Just [" 6: "],-     Just [" 7: "],-     Just [" 8: "],-     Just [" 9: "],-     Just ["10: "],-     Just ["11: "],-     Just ["12: "],-     Just ["13: "],-     Just ["14: "],-     Just ["15: "],-     Just ["16: "],-     Just ["17: "],-     Just ["18: "],-     Just ["19: "],-     Just ["20: "],-     Just ["21: "],-     Just ["22: "],-     Just ["23: "],-     Just ["24: "],-     Just ["25: "],-     Just ["26: "],-     Just ["27: "],-     Just ["28: "],-     Just ["29: "],-     Just ["30: "],-     Just ["31: "],-     Just ["32: "],-     Just ["33: "],-     Just ["34: "],-     Just ["35: "],-     Just ["36: "],-     Just ["37: "],-     Just ["38: "],-     Just ["39: "],-     Just ["40: "],-     Just ["41: "],-     Just ["42: "],-     Just ["43: "],-     Just ["44: "],-     Just ["45: "],-     Just ["46: "],-     Just ["47: "],-     Just ["48: "],-     Just ["49: "],-     Just ["50: "],-     Just ["51: "],-     Just ["52: "],-     Just ["53: "],-     Just ["54: "],-     Just ["55: "],-     Just ["56: "],-     Just ["57: "],-     Just ["58: "],-     Just ["59: "],-     Just ["60: "],-     Just ["61: "],-     Just ["62: "],-     Just ["63: "],-     Just ["64: "],-     Just ["65: "],-     Just ["66: "],-     Just ["67: "],-     Just ["68: "],-     Just ["69: "],-     Just ["70: "],-     Just ["71: "],-     Just ["72: "],-     Just ["73: "],-     Just ["74: "],-     Just ["75: "],-     Just ["76: "],-     Just ["77: "],-     Just ["78: "],-     Just ["79: "],-     Just ["80: "],-     Just ["81: "],-     Just ["82: "],-     Just ["83: "],-     Just ["84: "],-     Just ["85: "],-     Just ["86: "],-     Just ["87: "],-     Just ["88: "],-     Just ["89: "],-     Just ["90: "],-     Just ["91: "],-     Just ["92: "],-     Just ["93: "],-     Just ["94: "],-     Just ["95: "],-     Just ["96: "],-     Just ["97: "],-     Just ["98: "],-     Just ["99: "],-     Just ["100: "],-     Just ["101: XY"],-     Just ["102: Y"]]-,-testRegex "(a*b|(?i:c*(?-i)d))" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: C a b c d "]]-,-testRegex "()[ab]xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'z'"],-     Just ["Starting byte set: a b "]]-,-testRegex "(|)[ab]xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'z'"],-     Just ["Starting byte set: a b "]]-,-testRegex "(|c)[ab]xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'z'"],-     Just ["Starting byte set: a b c "]]-,-testRegex "(|c?)[ab]xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'z'"],-     Just ["Starting byte set: a b c "]]-,-testRegex "(d?|c?)[ab]xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'z'"],-     Just ["Starting byte set: a b c d "]]-,-testRegex "(d?|c)[ab]xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'z'"],-     Just ["Starting byte set: a b c d "]]-,-testRegex "^a*b\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = 'b'"]]-,-testRegex "^a*+b\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = 'b'"]]-,-testRegex "^a*?b\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = 'b'"]]-,-testRegex "^a+A\\d" [ERROR]-    ["aaaA5",-     "** Failers",-     "aaaa5"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored"],-     Just ["No first char"],-     Just ["Need char = 'A'"],-     Just [" 0: aaaA5"],-     Nothing,-     Nothing]-,-testRegex "^a*A\\d" [ERROR]-    ["aaaA5",-     "aaaa5"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored caseless"],-     Just ["No first char"],-     Just ["Need char = 'A' (caseless)"],-     Just [" 0: aaaA5"],-     Just [" 0: aaaa5"]]-,-testRegex "(a*|b*)[cd]" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b c d "]]-,-testRegex "(a+|b*)[cd]" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b c d "]]-,-testRegex "(a*|b+)[cd]" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b c d "]]-,-testRegex "(a+|b+)[cd]" [ERROR]-    []-    [Just ["Capturing subpattern count = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: a b "]]-,-testRegex "ERROR" []-    ["((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((",-     "(((",-     "a",-     "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",-     "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",-     ")))",-     "/Ix",-     "large nest"]-    [Just [" (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("],-     Just [" ((("],-     Just [" a"],-     Just [" ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))"],-     Just [" ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))"],-     Just [" )))"],-     Just ["/Ix"],-     Just ["Capturing subpattern count = 203"],-     Just ["Options: extended"],-     Just ["First char = 'a'"],-     Just ["No need char"],-     Just ["Matched, but too many substrings"],-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 2: a"],-     Just [" 3: a"],-     Just [" 4: a"],-     Just [" 5: a"],-     Just [" 6: a"],-     Just [" 7: a"],-     Just [" 8: a"],-     Just [" 9: a"],-     Just ["10: a"],-     Just ["11: a"],-     Just ["12: a"],-     Just ["13: a"],-     Just ["14: a"]]-,-testRegex "a*\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "a*\\D" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "0*\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "0*\\D" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "a*\\s" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "a*\\S" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex " *\\s" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex " *\\S" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "a*\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "a*\\W" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "=*\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "=*\\W" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*a" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*2" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*\\D" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*\\s" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*\\S" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*\\W" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\D*a" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\D*2" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\D*\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\D*\\D" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\D*\\s" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\D*\\S" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\D*\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\D*\\W" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\s*a" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\s*2" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\s*\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\s*\\D" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\s*\\s" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\s*\\S" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\s*\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\s*\\W" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\S*a" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\S*2" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\S*\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\S*\\D" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\S*\\s" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\S*\\S" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\S*\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\S*\\W" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w*a" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w*2" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w*\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w*\\D" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w*\\s" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w*\\S" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w*\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w*\\W" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\W*a" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\W*2" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\W*\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\W*\\D" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\W*\\s" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\W*\\S" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\W*\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\W*\\W" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^a]+a" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^a]+a" [caseless]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^a]+A" [caseless]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^a]+b" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^a]+\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "a*[^a]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(?P<abc>x)(?P<xyz>y)" [ERROR]-    ["xy\\Cabc\\Cxyz"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["Need char = 'y'"],-     Just [" 0: xy"],-     Just [" 1: x"],-     Just [" 2: y"]]-,-testRegex "(?<abc>x)(?'xyz'y)" [ERROR]-    ["xy\\Cabc\\Cxyz"]-    [Just ["Capturing subpattern count = 2"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["First char = 'x'"],-     Just ["Need char = 'y'"],-     Just [" 0: xy"],-     Just [" 1: x"],-     Just [" 2: y"]]-,-testRegex "(?<abc'x)(?'xyz'y)" [ERROR]-    []-    [Just ["Failed: syntax error in subpattern name (missing terminator) at offset 6"]]-,-testRegex "(?<abc>x)(?'xyz>y)" [ERROR]-    []-    [Just ["Failed: syntax error in subpattern name (missing terminator) at offset 15"]]-,-testRegex "(?P'abc'x)(?P<xyz>y)" [ERROR]-    []-    [Just ["Failed: unrecognized character after (?P at offset 3"]]-,-testRegex "^(?:(?(ZZ)a|b)(?<ZZ>X))+" []-    ["bXaX",-     "bXbX",-     "** Failers",-     "aXaX",-     "aXbX"]-    [Just [" 0: bXaX"],-     Just [" 1: X"],-     Just [" 0: bX"],-     Just [" 1: X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(?P>abc)(?<abcd>xxx)" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 8"]]-,-testRegex "^(?P>abc)(?<abc>x|y)" []-    ["xx",-     "xy",-     "yy",-     "yx"]-    [Just [" 0: xx"],-     Just [" 1: x"],-     Just [" 0: xy"],-     Just [" 1: y"],-     Just [" 0: yy"],-     Just [" 1: y"],-     Just [" 0: yx"],-     Just [" 1: x"]]-,-testRegex "^(?P>abc)(?P<abc>x|y)" []-    ["xx",-     "xy",-     "yy",-     "yx"]-    [Just [" 0: xx"],-     Just [" 1: x"],-     Just [" 0: xy"],-     Just [" 1: y"],-     Just [" 0: yy"],-     Just [" 1: y"],-     Just [" 0: yx"],-     Just [" 1: x"]]-,-testRegex "^((?(abc)a|b)(?<abc>x|y))+" []-    ["bxay",-     "bxby",-     "** Failers",-     "axby"]-    [Just [" 0: bxay"],-     Just [" 1: ay"],-     Just [" 2: y"],-     Just [" 0: bx"],-     Just [" 1: bx"],-     Just [" 2: x"],-     Nothing,-     Nothing]-,-testRegex "^(((?P=abc)|X)(?<abc>x|y))+" []-    ["XxXxxx",-     "XxXyyx",-     "XxXyxx",-     "** Failers",-     "x"]-    [Just [" 0: XxXxxx"],-     Just [" 1: xx"],-     Just [" 2: x"],-     Just [" 3: x"],-     Just [" 0: XxXyyx"],-     Just [" 1: yx"],-     Just [" 2: y"],-     Just [" 3: x"],-     Just [" 0: XxXy"],-     Just [" 1: Xy"],-     Just [" 2: X"],-     Just [" 3: y"],-     Nothing,-     Nothing]-,-testRegex "^(?1)(abc)" []-    ["abcabc"]-    [Just [" 0: abcabc"],-     Just [" 1: abc"]]-,-testRegex "^(?:(?:\\1|X)(a|b))+" []-    ["Xaaa",-     "Xaba"]-    [Just [" 0: Xaaa"],-     Just [" 1: a"],-     Just [" 0: Xa"],-     Just [" 1: a"]]-,-testRegex "^[\\E\\Qa\\E-\\Qz\\E]+" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^[a\\Q]bc\\E]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^[a-\\Q\\E]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^(?P>abc)[()](?<abc>)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^((?(abc)y)[()](?P<abc>x))+" [ERROR]-    ["(xy)x"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: (xy)x"],-     Just [" 1: y)x"],-     Just [" 2: x"]]-,-testRegex "^(?P>abc)\\Q()\\E(?<abc>)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^(?P>abc)[a\\Q(]\\E(](?<abc>)" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "ERROR" []-    ["(?<abc>)/BZx"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^\\W*(?:(?<one>(?<two>.)\\W*(?&one)\\W*\\k<two>|)|(?<three>(?<four>.)\\W*(?&three)\\W*\\k'four'|\\W*.\\W*))\\W*$" [caseless]-    ["1221",-     "Satan, oscillate my metallic sonatas!",-     "A man, a plan, a canal: Panama!",-     "Able was I ere I saw Elba.",-     "*** Failers",-     "The quick brown fox"]-    [Just ["Capturing subpattern count = 4"],-     Just ["Max back reference = 4"],-     Just ["Named capturing subpatterns:"],-     Just ["Partial matching not supported"],-     Just ["Options: anchored caseless"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: 1221"],-     Just [" 1: 1221"],-     Just [" 2: 1"],-     Just [" 0: Satan, oscillate my metallic sonatas!"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: Satan, oscillate my metallic sonatas"],-     Just [" 4: S"],-     Just [" 0: A man, a plan, a canal: Panama!"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: A man, a plan, a canal: Panama"],-     Just [" 4: A"],-     Just [" 0: Able was I ere I saw Elba."],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"],-     Just [" 3: Able was I ere I saw Elba"],-     Just [" 4: A"],-     Nothing,-     Nothing]-,-testRegex "(?=(\\w+))\\1:" [ERROR]-    ["abcd:"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = ':'"],-     Just [" 0: abcd:"],-     Just [" 1: abcd"]]-,-testRegex "(?=(?'abc'\\w+))\\k<abc>:" [ERROR]-    ["abcd:"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Max back reference = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["Partial matching not supported"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = ':'"],-     Just [" 0: abcd:"],-     Just [" 1: abcd"]]-,-testRegex "(?'abc'\\w+):\\k<abc>{2}" []-    ["a:aaxyz",-     "ab:ababxyz",-     "** Failers",-     "a:axyz",-     "ab:abxyz"]-    [Just [" 0: a:aa"],-     Just [" 1: a"],-     Just [" 0: ab:abab"],-     Just [" 1: ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?'abc'a|b)(?<abc>d|e)\\k<abc>{2}" [ERROR]-    ["adaa",-     "** Failers",-     "addd",-     "adbb"]-    [Just [" 0: adaa"],-     Just [" 1: a"],-     Just [" 2: d"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?'abc'a|b)(?<abc>d|e)(?&abc){2}" [ERROR]-    ["bdaa",-     "bdab",-     "** Failers",-     "bddd"]-    [Just [" 0: bdaa"],-     Just [" 1: b"],-     Just [" 2: d"],-     Just [" 0: bdab"],-     Just [" 1: b"],-     Just [" 2: d"],-     Nothing,-     Nothing]-,-testRegex "^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)" [ERROR]-    ["abd",-     "ce"]-    [Just [" 0: abd"],-     Just [" 1: a"],-     Just [" 0: ce"]]-,-testRegex "(?(<bc))" []-    []-    [Just ["Failed: malformed number or name after (?( at offset 6"]]-,-testRegex "(?(''))" []-    []-    [Just ["Failed: assertion expected after (?( at offset 4"]]-,-testRegex "(?('R')stuff)" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 7"]]-,-testRegex "((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) " [ERROR]-    ["abcabc1Xabc2XabcXabcabc"]-    [Just [" 0: abcabc1Xabc2XabcX"],-     Just [" 1: abcabc1Xabc2XabcX"],-     Just [" 2: abcabc1Xabc2XabcX"]]-,-testRegex "(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) " [ERROR]-    ["abcabc1Xabc2XabcXabcabc"]-    [Just [" 0: abcabc1Xabc2XabcX"],-     Just [" 1: abcabc1Xabc2XabcX"],-     Just [" 2: abcabc1Xabc2XabcX"]]-,-testRegex "(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) " [ERROR]-    []-    [Just ["Failed: reference to non-existent subpattern at offset 29"]]-,-testRegex "(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) " [ERROR]-    ["abcabc1Xabc2XabcXabcabc"]-    [Just [" 0: abcabc1Xabc2XabcX"],-     Just [" 1: abcabc1Xabc2XabcX"],-     Just [" 2: abcabc1Xabc2XabcX"]]-,-testRegex "^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) " [ERROR]-    ["abcd"]-    [Just [" 0: ab"],-     Just [" 1: <unset>"],-     Just [" 2: <unset>"]]-,-testRegex "ERROR" []-    ["(?(DEFINE)",-     "(?<NAME_PAT>[a-z]+)",-     "(?<ADDRESS_PAT>\\d+)",-     ")/x",-     "metcalfe 33"]-    [Just [" 0: metcalfe 33"],-     Just [" 1: metcalfe"],-     Just [" 2: 33"],-     Just [" 3: <unset>"],-     Just [" 4: <unset>"]]-,-testRegex "^(?(DEFINE) abc | xyz ) " [ERROR]-    []-    [Just ["Failed: DEFINE group contains more than one branch at offset 22"]]-,-testRegex "(?(DEFINE) abc) xyz" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: extended"],-     Just ["First char = 'x'"],-     Just ["Need char = 'z'"]]-,-testRegex "(?(DEFINE) abc){3} xyz" [ERROR]-    []-    [Just ["Failed: repeating a DEFINE group is not allowed at offset 17"]]-,-testRegex "(a|)*\\d" []-    ["\\O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-     "\\O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]-    [Nothing,-     Just ["Matched, but too many substrings"]]-,-testRegex "^a.b" [ERROR]-    ["a\\rb",-     "a\\nb\\<cr>",-     "a\\x85b\\<anycrlf> ",-     "** Failers",-     "a\\nb",-     "a\\nb\\<any>",-     "a\\rb\\<cr>",-     "a\\rb\\<any>",-     "a\\x85b\\<any> ",-     "a\\rb\\<anycrlf>"]-    [Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x85b"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^abc." [ERROR]-    ["abc1 \\x0aabc2 \\x0babc3xx \\x0cabc4 \\x0dabc5xx \\x0d\\x0aabc6 \\x85abc7 \\x{2028}abc8 \\x{2029}abc9 JUNK"]-    [Just [" 0: abc1"],-     Just [" 0: abc2"],-     Just [" 0: abc3"],-     Just [" 0: abc4"],-     Just [" 0: abc5"],-     Just [" 0: abc6"],-     Just [" 0: abc7"]]-,-testRegex "abc.$" [ERROR]-    ["abc1\\x0a abc2\\x0b abc3\\x0c abc4\\x0d abc5\\x0d\\x0a abc6\\x85 abc7\\x{2028} abc8\\x{2029} abc9"]-    [Just [" 0: abc1"],-     Just [" 0: abc2"],-     Just [" 0: abc3"],-     Just [" 0: abc4"],-     Just [" 0: abc5"],-     Just [" 0: abc6"],-     Just [" 0: abc9"]]-,-testRegex "a" [ERROR]-    []-    []-,-testRegex "a" [ERROR]-    []-    [Just ["Failed: inconsistent NEWLINE options at offset 0"]]-,-testRegex "^a\\Rb" [ERROR]-    ["a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0cb",-     "a\\x85b",-     "** Failers",-     "a\\n\\rb"]-    [Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x0bb"],-     Just [" 0: a\\x0cb"],-     Just [" 0: a\\x85b"],-     Nothing,-     Nothing]-,-testRegex "^a\\R*b" [ERROR]-    ["ab",-     "a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0cb",-     "a\\x85b",-     "a\\n\\rb",-     "a\\n\\r\\x85\\x0cb"]-    [Just [" 0: ab"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x0bb"],-     Just [" 0: a\\x0cb"],-     Just [" 0: a\\x85b"],-     Just [" 0: a\\x0a\\x0db"],-     Just [" 0: a\\x0a\\x0d\\x85\\x0cb"]]-,-testRegex "^a\\R+b" [ERROR]-    ["a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0cb",-     "a\\x85b",-     "a\\n\\rb",-     "a\\n\\r\\x85\\x0cb",-     "** Failers",-     "ab"]-    [Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x0bb"],-     Just [" 0: a\\x0cb"],-     Just [" 0: a\\x85b"],-     Just [" 0: a\\x0a\\x0db"],-     Just [" 0: a\\x0a\\x0d\\x85\\x0cb"],-     Nothing,-     Nothing]-,-testRegex "^a\\R{1,3}b" [ERROR]-    ["a\\nb",-     "a\\n\\rb",-     "a\\n\\r\\x85b",-     "a\\r\\n\\r\\nb",-     "a\\r\\n\\r\\n\\r\\nb",-     "a\\n\\r\\n\\rb",-     "a\\n\\n\\r\\nb",-     "** Failers",-     "a\\n\\n\\n\\rb",-     "a\\r"]-    [Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0a\\x0db"],-     Just [" 0: a\\x0a\\x0d\\x85b"],-     Just [" 0: a\\x0d\\x0a\\x0d\\x0ab"],-     Just [" 0: a\\x0d\\x0a\\x0d\\x0a\\x0d\\x0ab"],-     Just [" 0: a\\x0a\\x0d\\x0a\\x0db"],-     Just [" 0: a\\x0a\\x0a\\x0d\\x0ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^a[\\R]b" [ERROR]-    ["aRb",-     "** Failers",-     "a\\nb"]-    [Just [" 0: aRb"],-     Nothing,-     Nothing]-,-testRegex "(?&abc)X(?<abc>P)" [ERROR]-    ["abcPXP123"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'P'"],-     Just [" 0: PXP"],-     Just [" 1: P"]]-,-testRegex "(?1)X(?<abc>P)" [ERROR]-    ["abcPXP123"]-    [Just ["Capturing subpattern count = 1"],-     Just ["Named capturing subpatterns:"],-     Just ["No options"],-     Just ["No first char"],-     Just ["Need char = 'P'"],-     Just [" 0: PXP"],-     Just [" 1: P"]]-,-testRegex "(?(DEFINE)(?<byte>2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}" []-    ["1.2.3.4",-     "131.111.10.206",-     "10.0.0.0",-     "** Failers",-     "10.6",-     "455.3.4.5"]-    [Just [" 0: 1.2.3.4"],-     Just [" 1: <unset>"],-     Just [" 2: .4"],-     Just [" 0: 131.111.10.206"],-     Just [" 1: <unset>"],-     Just [" 2: .206"],-     Just [" 0: 10.0.0.0"],-     Just [" 1: <unset>"],-     Just [" 2: .0"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))" []-    ["1.2.3.4",-     "131.111.10.206",-     "10.0.0.0",-     "** Failers",-     "10.6",-     "455.3.4.5"]-    [Just [" 0: 1.2.3.4"],-     Just [" 1: .4"],-     Just [" 2: <unset>"],-     Just [" 0: 131.111.10.206"],-     Just [" 1: .206"],-     Just [" 2: <unset>"],-     Just [" 0: 10.0.0.0"],-     Just [" 1: .0"],-     Just [" 2: <unset>"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?:a(?&abc)b)*(?<abc>x)" []-    ["123axbaxbaxbx456",-     "123axbaxbaxb456"]-    [Just [" 0: axbaxbaxbx"],-     Just [" 1: x"],-     Just [" 0: x"],-     Just [" 1: x"]]-,-testRegex "(?:a(?&abc)b){1,5}(?<abc>x)" []-    ["123axbaxbaxbx456"]-    [Just [" 0: axbaxbaxbx"],-     Just [" 1: x"]]-,-testRegex "(?:a(?&abc)b){2,5}(?<abc>x)" []-    ["123axbaxbaxbx456"]-    [Just [" 0: axbaxbaxbx"],-     Just [" 1: x"]]-,-testRegex "(?:a(?&abc)b){2,}(?<abc>x)" []-    ["123axbaxbaxbx456"]-    [Just [" 0: axbaxbaxbx"],-     Just [" 1: x"]]-,-testRegex "(abc)(?i:(?1))" []-    ["defabcabcxyz",-     "DEFabcABCXYZ"]-    [Just [" 0: abcabc"],-     Just [" 1: abc"],-     Nothing]-,-testRegex "(abc)(?:(?i)(?1))" []-    ["defabcabcxyz",-     "DEFabcABCXYZ"]-    [Just [" 0: abcabc"],-     Just [" 1: abc"],-     Nothing]-,-testRegex "^(a(b))\\1\\g1\\g{1}\\g-1\\g{-1}\\g{-02}Z" []-    ["ababababbbabZXXXX"]-    [Just [" 0: ababababbbabZ"],-     Just [" 1: ab"],-     Just [" 2: b"]]-,-testRegex "^(a)\\g-2" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 7"]]-,-testRegex "^(a)\\g" []-    []-    [Just ["Failed: \\g is not followed by a braced name or an optionally braced non-zero number at offset 5"]]-,-testRegex "^(a)\\g{0}" []-    []-    [Just ["Failed: \\g is not followed by a braced name or an optionally braced non-zero number at offset 7"]]-,-testRegex "^(a)\\g{3" []-    []-    [Just ["Failed: \\g is not followed by a braced name or an optionally braced non-zero number at offset 8"]]-,-testRegex "^(a)\\g{4a}" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 9"]]-,-testRegex "^a.b" [ERROR]-    ["a\\rb",-     "*** Failers",-     "a\\nb"]-    [Just [" 0: a\\x0db"],-     Nothing,-     Nothing]-,-testRegex ".+foo" []-    ["afoo",-     "** Failers",-     "\\r\\nfoo",-     "\\nfoo"]-    [Just [" 0: afoo"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex ".+foo" [ERROR]-    ["afoo",-     "\\nfoo",-     "** Failers",-     "\\r\\nfoo"]-    [Just [" 0: afoo"],-     Just [" 0: \\x0afoo"],-     Nothing,-     Nothing]-,-testRegex ".+foo" [ERROR]-    ["afoo",-     "** Failers",-     "\\nfoo",-     "\\r\\nfoo"]-    [Just [" 0: afoo"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex ".+foo" [ERROR]-    ["afoo",-     "\\r\\nfoo",-     "\\nfoo",-     "",-     "/^$/mg<any>",-     "abc\\r\\rxyz",-     "abc\\n\\rxyz  ",-     "** Failers ",-     "abc\\r\\nxyz"]-    [Just [" 0: afoo"],-     Just [" 0: \\x0d\\x0afoo"],-     Just [" 0: \\x0afoo"],-     Just ["/^$/mg<any>"],-     Just [" 0: "],-     Just [" 0: "],-     Nothing,-     Nothing]-,-testRegex "(?m)^$" [ERROR]-    ["abc\\r\\n\\r\\n"]-    [Just [" 0: "],-     Just [" 0+ \\x0d\\x0a"]]-,-testRegex "(?m)^$|^\\r\\n" [ERROR]-    ["abc\\r\\n\\r\\n",-     "",-     "/(?m)$/<any>g+ ",-     "abc\\r\\n\\r\\n"]-    [Just [" 0: "],-     Just [" 0+ \\x0d\\x0a"],-     Just [" 0: \\x0d\\x0a"],-     Just [" 0+ "],-     Just ["/(?m)$/<any>g+ "],-     Just [" 0: "],-     Just [" 0+ \\x0d\\x0a\\x0d\\x0a"],-     Just [" 0: "],-     Just [" 0+ \\x0d\\x0a"],-     Just [" 0: "],-     Just [" 0+ "]]-,-testRegex "abc.$" [ERROR]-    ["abc1\\x0a abc2\\x0b abc3\\x0c abc4\\x0d abc5\\x0d\\x0a abc6\\x85 abc7\\x{2028} abc8\\x{2029} abc9"]-    [Just [" 0: abc1"],-     Just [" 0: abc4"],-     Just [" 0: abc5"],-     Just [" 0: abc9"]]-,-testRegex "^X" [ERROR]-    ["XABC",-     "** Failers ",-     "XABC\\B"]-    [Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "(ab|c)(?-1)" [ERROR]-    ["abc"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: abc"],-     Just [" 1: ab"]]-,-testRegex "xy(?+1)(abc)" [ERROR]-    ["xyabcabc",-     "** Failers",-     "xyabc  ",-     "",-     "/x(?-0)y/"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: xyabcabc"],-     Just [" 1: abc"],-     Nothing,-     Nothing,-     Just ["/x(?-0)y/"],-     Just ["Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5"]]-,-testRegex "x(?-1)y" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 5"]]-,-testRegex "x(?+0)y" [ERROR]-    []-    [Just ["Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5"]]-,-testRegex "x(?+1)y" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 5"]]-,-testRegex "^(abc)?(?(-1)X|Y)" [ERROR]-    ["abcX",-     "Y",-     "** Failers",-     "abcY   ",-     "",-     "/^((?(+1)X|Y)(abc))+/BZ ",-     "YabcXabc",-     "YabcXabcXabc",-     "** Failers",-     "XabcXabc  "]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: abcX"],-     Just [" 1: abc"],-     Just [" 0: Y"],-     Nothing,-     Nothing,-     Just ["/^((?(+1)X|Y)(abc))+/BZ "],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: YabcXabc"],-     Just [" 1: Xabc"],-     Just [" 2: abc"],-     Just [" 0: YabcXabcXabc"],-     Just [" 1: Xabc"],-     Just [" 2: abc"],-     Nothing,-     Nothing]-,-testRegex "(?(-1)a)" [ERROR]-    []-    [Just ["Failed: reference to non-existent subpattern at offset 6"]]-,-testRegex "((?(-1)a))" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "((?(-2)a))" [ERROR]-    []-    [Just ["Failed: reference to non-existent subpattern at offset 7"]]-,-testRegex "^(?(+1)X|Y)" [ERROR]-    ["Y"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: Y"]]-,-testRegex "(foo)\\Kbar" []-    ["foobar",-     "",-     "/(foo)(\\Kbar|baz)/",-     "foobar",-     "foobaz "]-    [Just [" 0: bar"],-     Just [" 1: foo"],-     Just ["/(foo)(\\Kbar|baz)/"],-     Just [" 0: bar"],-     Just [" 1: foo"],-     Just [" 2: bar"],-     Just [" 0: foobaz"],-     Just [" 1: foo"],-     Just [" 2: baz"]]-,-testRegex "(foo\\Kbar)baz" []-    ["foobarbaz"]-    [Just [" 0: barbaz"],-     Just [" 1: foobar"]]-,-testRegex "(?<A>tom|bon)-\\k{A}" []-    ["tom-tom",-     "bon-bon ",-     "** Failers",-     "tom-bon  "]-    [Just [" 0: tom-tom"],-     Just [" 1: tom"],-     Just [" 0: bon-bon"],-     Just [" 1: bon"],-     Nothing,-     Nothing]-,-testRegex "(?<A>tom|bon)-\\g{A}" []-    ["tom-tom",-     "bon-bon ",-     "",-     "/\\g{A/ "]-    [Just [" 0: tom-tom"],-     Just [" 1: tom"],-     Just [" 0: bon-bon"],-     Just [" 1: bon"],-     Just ["/\\g{A/ "],-     Just ["Failed: syntax error in subpattern name (missing terminator) at offset 4"]]-,-testRegex "(?|(abc)|(xyz))" [ERROR]-    [">abc<",-     ">xyz< "]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: abc"],-     Just [" 1: abc"],-     Just [" 0: xyz"],-     Just [" 1: xyz"]]-,-testRegex "(x)(?|(abc)|(xyz))(x)" [ERROR]-    ["xabcx",-     "xxyzx "]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: xabcx"],-     Just [" 1: x"],-     Just [" 2: abc"],-     Just [" 3: x"],-     Just [" 0: xxyzx"],-     Just [" 1: x"],-     Just [" 2: xyz"],-     Just [" 3: x"]]-,-testRegex "(x)(?|(abc)(pqr)|(xyz))(x)" [ERROR]-    ["xabcpqrx",-     "xxyzx "]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: xabcpqrx"],-     Just [" 1: x"],-     Just [" 2: abc"],-     Just [" 3: pqr"],-     Just [" 4: x"],-     Just [" 0: xxyzx"],-     Just [" 1: x"],-     Just [" 2: xyz"],-     Just [" 3: <unset>"],-     Just [" 4: x"]]-,-testRegex "(?|(abc)|(xyz))\\1" []-    ["abcabc",-     "xyzxyz ",-     "** Failers",-     "abcxyz",-     "xyzabc   ",-     "",-     "/(?|(abc)|(xyz))(?1)/",-     "abcabc",-     "xyzabc ",-     "** Failers ",-     "xyzxyz ",-     "",-     "/\\H\\h\\V\\v/",-     "X X\\x0a",-     "X\\x09X\\x0b",-     "** Failers",-     "\\xa0 X\\x0a   ",-     "",-     "/\\H*\\h+\\V?\\v{3,4}/ ",-     "\\x09\\x20\\xa0X\\x0a\\x0b\\x0c\\x0d\\x0a",-     "\\x09\\x20\\xa0\\x0a\\x0b\\x0c\\x0d\\x0a",-     "\\x09\\x20\\xa0\\x0a\\x0b\\x0c",-     "** Failers ",-     "\\x09\\x20\\xa0\\x0a\\x0b",-     "",-     "/\\H{3,4}/",-     "XY  ABCDE",-     "XY  PQR ST ",-     "",-     "/.\\h{3,4}./",-     "XY  AB    PQRS"]-    [Just [" 0: abcabc"],-     Just [" 1: abc"],-     Just [" 0: xyzxyz"],-     Just [" 1: xyz"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?|(abc)|(xyz))(?1)/"],-     Just [" 0: abcabc"],-     Just [" 1: abc"],-     Just [" 0: xyzabc"],-     Just [" 1: xyz"],-     Nothing,-     Nothing,-     Just ["/\\H\\h\\V\\v/"],-     Just [" 0: X X\\x0a"],-     Just [" 0: X\\x09X\\x0b"],-     Nothing,-     Nothing,-     Just ["/\\H*\\h+\\V?\\v{3,4}/ "],-     Just [" 0: \\x09 \\xa0X\\x0a\\x0b\\x0c\\x0d"],-     Just [" 0: \\x09 \\xa0\\x0a\\x0b\\x0c\\x0d"],-     Just [" 0: \\x09 \\xa0\\x0a\\x0b\\x0c"],-     Nothing,-     Nothing,-     Just ["/\\H{3,4}/"],-     Just [" 0: ABCD"],-     Just [" 0: PQR"],-     Just ["/.\\h{3,4}./"],-     Just [" 0: B    P"]]-,-testRegex "\\h*X\\h?\\H+Y\\H?Z" []-    [">XNNNYZ",-     ">  X NYQZ",-     "** Failers",-     ">XYZ   ",-     ">  X NY Z"]-    [Just [" 0: XNNNYZ"],-     Just [" 0:   X NYQZ"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\v*X\\v?Y\\v+Z\\V*\\x0a\\V+\\x0b\\V{2,3}\\x0c" []-    [">XY\\x0aZ\\x0aA\\x0bNN\\x0c",-     ">\\x0a\\x0dX\\x0aY\\x0a\\x0bZZZ\\x0aAAA\\x0bNNN\\x0c"]-    [Just [" 0: XY\\x0aZ\\x0aA\\x0bNN\\x0c"],-     Just [" 0: \\x0a\\x0dX\\x0aY\\x0a\\x0bZZZ\\x0aAAA\\x0bNNN\\x0c"]]-,-testRegex "[\\h]" [ERROR]-    [">\\x09<"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: \\x09"]]-,-testRegex "[\\h]+" [ERROR]-    [">\\x09\\x20\\xa0<"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: \\x09 \\xa0"]]-,-testRegex "[\\v]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\H]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[^\\h]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\V]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\x0a\\V]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\H++X" [ERROR]-    ["** Failers",-     "XXXX",-     "",-     "/\\H+\\hY/BZ",-     "XXXX Y "]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Nothing,-     Nothing,-     Just ["/\\H+\\hY/BZ"],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just [" 0: XXXX Y"]]-,-testRegex "\\H+ Y" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\h+A" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\v*B" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\V+\\x0a" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "A+\\h" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex " *\\H" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "A*\\v" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\x0b*\\V" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d+\\h" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\d*\\v" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "S+\\h\\S+\\v" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\w{3,}\\h\\w+\\v" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\h+\\d\\h+\\w\\h+\\S\\h+\\H" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\v+\\d\\v+\\w\\v+\\S\\v+\\V" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\H+\\h\\H+\\d" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\V+\\v\\V+\\w" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "\\( (?: [^()]* | (?R) )* \\)" [ERROR]-    ["(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)"]-    [Just ["(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)"],-     Just [" 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)"]]-,-testRegex "[\\E]AAA" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 7"]]-,-testRegex "[\\Q\\E]AAA" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 9"]]-,-testRegex "[^\\E]AAA" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 8"]]-,-testRegex "[^\\Q\\E]AAA" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 10"]]-,-testRegex "[\\E^]AAA" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 8"]]-,-testRegex "[\\Q\\E^]AAA" []-    []-    [Just ["Failed: missing terminating ] for character class at offset 10"]]-,-testRegex "A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "^a+(*FAIL)" []-    ["aaaaaa",-     "",-     "/a+b?c+(*FAIL)/",-     "aaabccc"]-    [Nothing,-     Just ["/a+b?c+(*FAIL)/"],-     Nothing]-,-testRegex "a+b?(*PRUNE)c+(*FAIL)" []-    ["aaabccc"]-    [Nothing]-,-testRegex "a+b?(*COMMIT)c+(*FAIL)" []-    ["aaabccc",-     "",-     "/a+b?(*SKIP)c+(*FAIL)/",-     "aaabcccaaabccc"]-    [Nothing,-     Just ["/a+b?(*SKIP)c+(*FAIL)/"],-     Nothing]-,-testRegex "^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})" []-    ["aaaxxxxxx",-     "aaa++++++ ",-     "bbbxxxxx",-     "bbb+++++ ",-     "cccxxxx",-     "ccc++++ ",-     "dddddddd   "]-    [Just [" 0: aaaxxxxxx"],-     Just [" 0: aaa"],-     Just [" 0: bbbxxxxx"],-     Just [" 0: bbb"],-     Just [" 0: cccxxxx"],-     Just [" 0: ccc"],-     Just [" 0: ddd"]]-,-testRegex "^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})" []-    ["aaaxxxxxx",-     "aaa++++++ ",-     "bbbxxxxx",-     "bbb+++++ ",-     "cccxxxx",-     "ccc++++ ",-     "dddddddd   "]-    [Just [" 0: aaaxxxxxx"],-     Just [" 1: aaaxxxxxx"],-     Just [" 0: aaa"],-     Just [" 1: aaa"],-     Just [" 0: bbbxxxxx"],-     Just [" 1: bbbxxxxx"],-     Just [" 0: bbb"],-     Just [" 1: bbb"],-     Just [" 0: cccxxxx"],-     Just [" 1: cccxxxx"],-     Just [" 0: ccc"],-     Just [" 1: ccc"],-     Just [" 0: ddd"],-     Just [" 1: ddd"]]-,-testRegex "a+b?(*THEN)c+(*FAIL)" []-    ["aaabccc"]-    [Nothing]-,-testRegex "(A (A|B(*ACCEPT)|C) D)(E)" [ERROR]-    ["ABX",-     "AADE",-     "ACDE",-     "** Failers",-     "AD ",-     "",-     "/^a+(*FAIL)/C",-     "aaaaaa",-     "",-     "/a+b?c+(*FAIL)/C",-     "aaabccc"]-    [Just [" 0: AB"],-     Just [" 0: AADE"],-     Just [" 1: AAD"],-     Just [" 2: A"],-     Just [" 3: E"],-     Just [" 0: ACDE"],-     Just [" 1: ACD"],-     Just [" 2: C"],-     Just [" 3: E"],-     Nothing,-     Nothing,-     Just ["/^a+(*FAIL)/C"],-     Just ["--->aaaaaa"],-     Just [" +0 ^          ^"],-     Just [" +1 ^          a+"],-     Just [" +3 ^     ^    (*FAIL)"],-     Just [" +3 ^    ^     (*FAIL)"],-     Just [" +3 ^   ^      (*FAIL)"],-     Just [" +3 ^  ^       (*FAIL)"],-     Just [" +3 ^ ^        (*FAIL)"],-     Just [" +3 ^^         (*FAIL)"],-     Nothing,-     Just ["/a+b?c+(*FAIL)/C"],-     Just ["--->aaabccc"],-     Just [" +0 ^           a+"],-     Just [" +2 ^  ^        b?"],-     Just [" +4 ^   ^       c+"],-     Just [" +6 ^      ^    (*FAIL)"],-     Just [" +6 ^     ^     (*FAIL)"],-     Just [" +6 ^    ^      (*FAIL)"],-     Just [" +4 ^  ^        c+"],-     Just [" +2 ^ ^         b?"],-     Just [" +4 ^ ^         c+"],-     Just [" +2 ^^          b?"],-     Just [" +4 ^^          c+"],-     Just [" +0  ^          a+"],-     Just [" +2  ^ ^        b?"],-     Just [" +4  ^  ^       c+"],-     Just [" +6  ^     ^    (*FAIL)"],-     Just [" +6  ^    ^     (*FAIL)"],-     Just [" +6  ^   ^      (*FAIL)"],-     Just [" +4  ^ ^        c+"],-     Just [" +2  ^^         b?"],-     Just [" +4  ^^         c+"],-     Just [" +0   ^         a+"],-     Just [" +2   ^^        b?"],-     Just [" +4   ^ ^       c+"],-     Just [" +6   ^    ^    (*FAIL)"],-     Just [" +6   ^   ^     (*FAIL)"],-     Just [" +6   ^  ^      (*FAIL)"],-     Just [" +4   ^^        c+"],-     Nothing]-,-testRegex "a+b?(*PRUNE)c+(*FAIL)" [ERROR]-    ["aaabccc"]-    [Just ["--->aaabccc"],-     Just [" +0 ^           a+"],-     Just [" +2 ^  ^        b?"],-     Just [" +4 ^   ^       (*PRUNE)"],-     Just ["+12 ^   ^       c+"],-     Just ["+14 ^      ^    (*FAIL)"],-     Just ["+14 ^     ^     (*FAIL)"],-     Just ["+14 ^    ^      (*FAIL)"],-     Just [" +0  ^          a+"],-     Just [" +2  ^ ^        b?"],-     Just [" +4  ^  ^       (*PRUNE)"],-     Just ["+12  ^  ^       c+"],-     Just ["+14  ^     ^    (*FAIL)"],-     Just ["+14  ^    ^     (*FAIL)"],-     Just ["+14  ^   ^      (*FAIL)"],-     Just [" +0   ^         a+"],-     Just [" +2   ^^        b?"],-     Just [" +4   ^ ^       (*PRUNE)"],-     Just ["+12   ^ ^       c+"],-     Just ["+14   ^    ^    (*FAIL)"],-     Just ["+14   ^   ^     (*FAIL)"],-     Just ["+14   ^  ^      (*FAIL)"],-     Nothing]-,-testRegex "a+b?(*COMMIT)c+(*FAIL)" [ERROR]-    ["aaabccc",-     "",-     "/a+b?(*SKIP)c+(*FAIL)/C",-     "aaabcccaaabccc"]-    [Just ["--->aaabccc"],-     Just [" +0 ^           a+"],-     Just [" +2 ^  ^        b?"],-     Just [" +4 ^   ^       (*COMMIT)"],-     Just ["+13 ^   ^       c+"],-     Just ["+15 ^      ^    (*FAIL)"],-     Just ["+15 ^     ^     (*FAIL)"],-     Just ["+15 ^    ^      (*FAIL)"],-     Nothing,-     Just ["/a+b?(*SKIP)c+(*FAIL)/C"],-     Just ["--->aaabcccaaabccc"],-     Just [" +0 ^                  a+"],-     Just [" +2 ^  ^               b?"],-     Just [" +4 ^   ^              (*SKIP)"],-     Just ["+11 ^   ^              c+"],-     Just ["+13 ^      ^           (*FAIL)"],-     Just ["+13 ^     ^            (*FAIL)"],-     Just ["+13 ^    ^             (*FAIL)"],-     Just [" +0        ^           a+"],-     Just [" +2        ^  ^        b?"],-     Just [" +4        ^   ^       (*SKIP)"],-     Just ["+11        ^   ^       c+"],-     Just ["+13        ^      ^    (*FAIL)"],-     Just ["+13        ^     ^     (*FAIL)"],-     Just ["+13        ^    ^      (*FAIL)"],-     Nothing]-,-testRegex "a+b?(*THEN)c+(*FAIL)" [ERROR]-    ["aaabccc",-     "",-     "/a(*PRUNE:XXX)b/"]-    [Just ["--->aaabccc"],-     Just [" +0 ^           a+"],-     Just [" +2 ^  ^        b?"],-     Just [" +4 ^   ^       (*THEN)"],-     Just ["+11 ^   ^       c+"],-     Just ["+13 ^      ^    (*FAIL)"],-     Just ["+13 ^     ^     (*FAIL)"],-     Just ["+13 ^    ^      (*FAIL)"],-     Just [" +0  ^          a+"],-     Just [" +2  ^ ^        b?"],-     Just [" +4  ^  ^       (*THEN)"],-     Just ["+11  ^  ^       c+"],-     Just ["+13  ^     ^    (*FAIL)"],-     Just ["+13  ^    ^     (*FAIL)"],-     Just ["+13  ^   ^      (*FAIL)"],-     Just [" +0   ^         a+"],-     Just [" +2   ^^        b?"],-     Just [" +4   ^ ^       (*THEN)"],-     Just ["+11   ^ ^       c+"],-     Just ["+13   ^    ^    (*FAIL)"],-     Just ["+13   ^   ^     (*FAIL)"],-     Just ["+13   ^  ^      (*FAIL)"],-     Nothing,-     Just ["/a(*PRUNE:XXX)b/"],-     Just ["Failed: (*VERB) with an argument is not supported at offset 8"]]-,-testRegex "a(*MARK)b" [ERROR]-    []-    [Just ["Failed: (*VERB) not recognized at offset 7"]]-,-testRegex "(?i:A{1,}\\6666666666)" []-    []-    [Just ["Failed: number is too big at offset 19"]]-,-testRegex "\\g6666666666" []-    []-    [Just ["Failed: number is too big at offset 11"]]-,-testRegex "[\\g6666666666]" []-    []-    [Just ["Failed: number is too big at offset 12"]]-,-testRegex "(?1)\\c[" []-    []-    [Just ["Failed: reference to non-existent subpattern at offset 3"]]-,-testRegex ".+A" [ERROR]-    ["\\r\\nA",-     "",-     "/\\nA/<crlf>",-     "\\r\\nA "]-    [Nothing,-     Just ["/\\nA/<crlf>"],-     Just [" 0: \\x0aA"]]-,-testRegex "[\\r\\n]A" [ERROR]-    ["\\r\\nA "]-    [Just [" 0: \\x0aA"]]-,-testRegex "(\\r|\\n)A" [ERROR]-    ["\\r\\nA "]-    [Just [" 0: \\x0aA"],-     Just [" 1: \\x0a"]]-,-testRegex "a(*CR)b" []-    []-    [Just ["Failed: (*VERB) not recognized at offset 5"]]-,-testRegex "(*CR)a.b" []-    ["a\\nb",-     "** Failers",-     "a\\rb  "]-    [Just [" 0: a\\x0ab"],-     Nothing,-     Nothing]-,-testRegex "(*CR)a.b" [ERROR]-    ["a\\nb",-     "** Failers",-     "a\\rb  "]-    [Just [" 0: a\\x0ab"],-     Nothing,-     Nothing]-,-testRegex "(*LF)a.b" [ERROR]-    ["a\\rb",-     "** Failers",-     "a\\nb  "]-    [Just [" 0: a\\x0db"],-     Nothing,-     Nothing]-,-testRegex "(*CRLF)a.b" []-    ["a\\rb",-     "a\\nb  ",-     "** Failers",-     "a\\r\\nb  "]-    [Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Nothing,-     Nothing]-,-testRegex "(*ANYCRLF)a.b" [ERROR]-    ["** Failers",-     "a\\rb",-     "a\\nb  ",-     "a\\r\\nb  "]-    [Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(*ANY)a.b" [ERROR]-    ["** Failers",-     "a\\rb",-     "a\\nb  ",-     "a\\r\\nb  ",-     "a\\x85b "]-    [Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\Rb" [ERROR]-    ["a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "** Failers",-     "a\\x85b",-     "a\\x0bb     "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0d\\x0ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\Rb" [ERROR]-    ["a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "a\\x85b",-     "a\\x0bb     ",-     "** Failers ",-     "a\\x85b\\<bsr_anycrlf>",-     "a\\x0bb\\<bsr_anycrlf>",-     "",-     "/a\\R?b/I<bsr_anycrlf>",-     "a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "** Failers",-     "a\\x85b",-     "a\\x0bb     "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_unicode"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x85b"],-     Just [" 0: a\\x0bb"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/a\\R?b/I<bsr_anycrlf>"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0d\\x0ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\R?b" [ERROR]-    ["a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "a\\x85b",-     "a\\x0bb     ",-     "** Failers ",-     "a\\x85b\\<bsr_anycrlf>",-     "a\\x0bb\\<bsr_anycrlf>",-     "",-     "/a\\R{2,4}b/I<bsr_anycrlf>",-     "a\\r\\n\\nb",-     "a\\n\\r\\rb",-     "a\\r\\n\\r\\n\\r\\n\\r\\nb",-     "** Failers",-     "a\\x85\\85b",-     "a\\x0b\\0bb     "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_unicode"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x85b"],-     Just [" 0: a\\x0bb"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/a\\R{2,4}b/I<bsr_anycrlf>"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: bsr_anycrlf"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0d\\x0a\\x0ab"],-     Just [" 0: a\\x0a\\x0d\\x0db"],-     Just [" 0: a\\x0d\\x0a\\x0d\\x0a\\x0d\\x0a\\x0d\\x0ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\R{2,4}b" [ERROR]-    ["a\\r\\rb",-     "a\\n\\n\\nb",-     "a\\r\\n\\n\\r\\rb",-     "a\\x85\\85b",-     "a\\x0b\\0bb     ",-     "** Failers ",-     "a\\r\\r\\r\\r\\rb ",-     "a\\x85\\85b\\<bsr_anycrlf>",-     "a\\x0b\\0bb\\<bsr_anycrlf>",-     "",-     "/(*BSR_ANYCRLF)a\\Rb/I",-     "a\\nb",-     "a\\rb "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: bsr_unicode"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0d\\x0db"],-     Just [" 0: a\\x0a\\x0a\\x0ab"],-     Just [" 0: a\\x0d\\x0a\\x0a\\x0d\\x0db"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/(*BSR_ANYCRLF)a\\Rb/I"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0db"]]-,-testRegex "(*BSR_UNICODE)a\\Rb" [ERROR]-    ["a\\x85b"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_unicode"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x85b"]]-,-testRegex "(*BSR_ANYCRLF)(*CRLF)a\\Rb" [ERROR]-    ["a\\nb",-     "a\\rb "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf"],-     Just ["Forced newline sequence: CRLF"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0db"]]-,-testRegex "(*CRLF)(*BSR_UNICODE)a\\Rb" [ERROR]-    ["a\\x85b"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_unicode"],-     Just ["Forced newline sequence: CRLF"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x85b"]]-,-testRegex "(*CRLF)(*BSR_ANYCRLF)(*CR)ab" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf"],-     Just ["Forced newline sequence: CR"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"]]-,-testRegex " End of testinput2 " []-    []-    []
− tests/testdata/regex3.tests
@@ -1,158 +0,0 @@-testRegex "^[\\w]+" []-    ["*** Failers",-     "\201cole"]-    [Nothing,-     Nothing]-,-testRegex "^[\\w]+" [ERROR]-    ["\201cole"]-    [Just [" 0: \201cole"]]-,-testRegex "^[\\w]+" []-    ["*** Failers",-     "\201cole"]-    [Nothing,-     Nothing]-,-testRegex "^[\\W]+" []-    ["\201cole"]-    [Just [" 0: \\xc9"]]-,-testRegex "^[\\W]+" [ERROR]-    ["*** Failers",-     "\201cole"]-    [Just [" 0: *** "],-     Nothing]-,-testRegex "[\\b]" []-    ["\\b",-     "*** Failers",-     "a"]-    [Just [" 0: \\x08"],-     Nothing,-     Nothing]-,-testRegex "[\\b]" [ERROR]-    ["\\b",-     "*** Failers",-     "a"]-    [Just [" 0: \\x08"],-     Nothing,-     Nothing]-,-testRegex "^\\w+" []-    ["*** Failers",-     "\201cole"]-    [Nothing,-     Nothing]-,-testRegex "^\\w+" [ERROR]-    ["\201cole"]-    [Just [" 0: \201cole"]]-,-testRegex "(.+)\\b(.+)" []-    ["\201cole"]-    [Just [" 0: \\xc9cole"],-     Just [" 1: \\xc9"],-     Just [" 2: cole"]]-,-testRegex "(.+)\\b(.+)" [ERROR]-    ["*** Failers",-     "\201cole"]-    [Just [" 0: *** Failers"],-     Just [" 1: *** "],-     Just [" 2: Failers"],-     Nothing]-,-testRegex "\201cole" [caseless]-    ["\201cole",-     "*** Failers",-     "\233cole"]-    [Just [" 0: \\xc9cole"],-     Nothing,-     Nothing]-,-testRegex "\201cole" [ERROR]-    ["\201cole",-     "\233cole"]-    [Just [" 0: \201cole"],-     Just [" 0: \233cole"]]-,-testRegex "\\w" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P "]]-,-testRegex "\\w" [ERROR]-    []-    [Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"],-     Just ["Starting byte set: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P "]]-,-testRegex "^[\\xc8-\\xc9]" [ERROR]-    ["\201cole",-     "\233cole"]-    [Just [" 0: \201"],-     Just [" 0: \233"]]-,-testRegex "^[\\xc8-\\xc9]" [ERROR]-    ["\201cole",-     "*** Failers ",-     "\233cole"]-    [Just [" 0: \201"],-     Nothing,-     Nothing]-,-testRegex "\\W+" [ERROR]-    [">>>\\xaa<<<",-     ">>>\\xba<<< "]-    [Just [" 0: >>>"],-     Just [" 0: >>>"]]-,-testRegex "[\\W]+" [ERROR]-    [">>>\\xaa<<<",-     ">>>\\xba<<< "]-    [Just [" 0: >>>"],-     Just [" 0: >>>"]]-,-testRegex "[^[:alpha:]]+" [ERROR]-    [">>>\\xaa<<<",-     ">>>\\xba<<< "]-    [Just [" 0: >>>"],-     Just [" 0: >>>"]]-,-testRegex "\\w+" [ERROR]-    [">>>\\xaa<<<",-     ">>>\\xba<<< "]-    [Just [" 0: \170"],-     Just [" 0: \186"]]-,-testRegex "[\\w]+" [ERROR]-    [">>>\\xaa<<<",-     ">>>\\xba<<< "]-    [Just [" 0: \170"],-     Just [" 0: \186"]]-,-testRegex "[[:alpha:]]+" [ERROR]-    [">>>\\xaa<<<",-     ">>>\\xba<<< ",-     "",-     "/[[:alpha:]][[:lower:]][[:upper:]]/DZLfr_FR "]-    [Just [" 0: \170"],-     Just [" 0: \186"],-     Just ["/[[:alpha:]][[:lower:]][[:upper:]]/DZLfr_FR "],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex " End of testinput3 " []-    []-    []
− tests/testdata/regex4.tests
@@ -1,963 +0,0 @@-testRegex "-- Do not use the \\x{} construct except with patterns that have the --" []-    ["/-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/",-     "/-- that option is set. However, the latest Perls recognize them always. --/"]-    [Just ["/-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/"],-     Nothing,-     Just ["/-- that option is set. However, the latest Perls recognize them always. --/"],-     Nothing]-,-testRegex "a.b" [ERROR]-    ["acb",-     "a\\x7fb",-     "a\\x{100}b ",-     "*** Failers",-     "a\\nb  "]-    [Just [" 0: acb"],-     Just [" 0: a\\x{7f}b"],-     Just [" 0: a\\x{100}b"],-     Nothing,-     Nothing]-,-testRegex "a(.{3})b" [ERROR]-    ["a\\x{4000}xyb ",-     "a\\x{4000}\\x7fyb ",-     "a\\x{4000}\\x{100}yb ",-     "*** Failers",-     "a\\x{4000}b ",-     "ac\\ncb "]-    [Just [" 0: a\\x{4000}xyb"],-     Just [" 1: \\x{4000}xy"],-     Just [" 0: a\\x{4000}\\x{7f}yb"],-     Just [" 1: \\x{4000}\\x{7f}y"],-     Just [" 0: a\\x{4000}\\x{100}yb"],-     Just [" 1: \\x{4000}\\x{100}y"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a(.*?)(.)" []-    ["a\\xc0\\x88b"]-    [Just [" 0: a\\xc0"],-     Just [" 1: "],-     Just [" 2: \\xc0"]]-,-testRegex "a(.*?)(.)" [ERROR]-    ["a\\x{100}b"]-    [Just [" 0: a\\x{100}"],-     Just [" 1: "],-     Just [" 2: \\x{100}"]]-,-testRegex "a(.*)(.)" []-    ["a\\xc0\\x88b"]-    [Just [" 0: a\\xc0\\x88b"],-     Just [" 1: \\xc0\\x88"],-     Just [" 2: b"]]-,-testRegex "a(.*)(.)" [ERROR]-    ["a\\x{100}b"]-    [Just [" 0: a\\x{100}b"],-     Just [" 1: \\x{100}"],-     Just [" 2: b"]]-,-testRegex "a(.)(.)" []-    ["a\\xc0\\x92bcd"]-    [Just [" 0: a\\xc0\\x92"],-     Just [" 1: \\xc0"],-     Just [" 2: \\x92"]]-,-testRegex "a(.)(.)" [ERROR]-    ["a\\x{240}bcd"]-    [Just [" 0: a\\x{240}b"],-     Just [" 1: \\x{240}"],-     Just [" 2: b"]]-,-testRegex "a(.?)(.)" []-    ["a\\xc0\\x92bcd"]-    [Just [" 0: a\\xc0\\x92"],-     Just [" 1: \\xc0"],-     Just [" 2: \\x92"]]-,-testRegex "a(.?)(.)" [ERROR]-    ["a\\x{240}bcd"]-    [Just [" 0: a\\x{240}b"],-     Just [" 1: \\x{240}"],-     Just [" 2: b"]]-,-testRegex "a(.??)(.)" []-    ["a\\xc0\\x92bcd"]-    [Just [" 0: a\\xc0"],-     Just [" 1: "],-     Just [" 2: \\xc0"]]-,-testRegex "a(.??)(.)" [ERROR]-    ["a\\x{240}bcd"]-    [Just [" 0: a\\x{240}"],-     Just [" 1: "],-     Just [" 2: \\x{240}"]]-,-testRegex "a(.{3})b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "*** Failers",-     "a\\x{1234}b ",-     "ac\\ncb "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 1: \\x{1234}xy"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 1: \\x{1234}\\x{4321}y"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a(.{3,})b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "axxxxbcdefghijb ",-     "a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b ",-     "*** Failers",-     "a\\x{1234}b "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 1: \\x{1234}xy"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 1: \\x{1234}\\x{4321}y"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}"],-     Just [" 0: axxxxbcdefghijb"],-     Just [" 1: xxxxbcdefghij"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}\\x{3421}"],-     Nothing,-     Nothing]-,-testRegex "a(.{3,}?)b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "axxxxbcdefghijb ",-     "a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b ",-     "*** Failers",-     "a\\x{1234}b "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 1: \\x{1234}xy"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 1: \\x{1234}\\x{4321}y"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}"],-     Just [" 0: axxxxb"],-     Just [" 1: xxxx"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}\\x{3421}"],-     Nothing,-     Nothing]-,-testRegex "a(.{3,5})b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "axxxxbcdefghijb ",-     "a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b ",-     "axbxxbcdefghijb ",-     "axxxxxbcdefghijb ",-     "*** Failers",-     "a\\x{1234}b ",-     "axxxxxxbcdefghijb "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 1: \\x{1234}xy"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 1: \\x{1234}\\x{4321}y"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}"],-     Just [" 0: axxxxb"],-     Just [" 1: xxxx"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}\\x{3421}"],-     Just [" 0: axbxxb"],-     Just [" 1: xbxx"],-     Just [" 0: axxxxxb"],-     Just [" 1: xxxxx"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a(.{3,5}?)b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "axxxxbcdefghijb ",-     "a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b ",-     "axbxxbcdefghijb ",-     "axxxxxbcdefghijb ",-     "*** Failers",-     "a\\x{1234}b ",-     "axxxxxxbcdefghijb "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 1: \\x{1234}xy"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 1: \\x{1234}\\x{4321}y"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}"],-     Just [" 0: axxxxb"],-     Just [" 1: xxxx"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b"],-     Just [" 1: \\x{1234}\\x{4321}\\x{3412}\\x{3421}"],-     Just [" 0: axbxxb"],-     Just [" 1: xbxx"],-     Just [" 0: axxxxxb"],-     Just [" 1: xxxxx"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[a\\x{c0}]" [ERROR]-    ["*** Failers",-     "\\x{100}"]-    [Nothing,-     Nothing]-,-testRegex "(?<=aXb)cd" [ERROR]-    ["aXbcd"]-    [Just [" 0: cd"]]-,-testRegex "(?<=a\\x{100}b)cd" [ERROR]-    ["a\\x{100}bcd"]-    [Just [" 0: cd"]]-,-testRegex "(?<=a\\x{100000}b)cd" [ERROR]-    ["a\\x{100000}bcd",-     "",-     "/(?:\\x{100}){3}b/8",-     "\\x{100}\\x{100}\\x{100}b",-     "*** Failers ",-     "\\x{100}\\x{100}b"]-    [Just [" 0: cd"],-     Just ["/(?:\\x{100}){3}b/8"],-     Just [" 0: \\x{100}\\x{100}\\x{100}b"],-     Nothing,-     Nothing]-,-testRegex "\\x{ab}" [ERROR]-    ["\\x{ab} ",-     "\\xc2\\xab",-     "*** Failers ",-     "\\x00{ab}"]-    [Just [" 0: \\x{ab}"],-     Just [" 0: \\x{ab}"],-     Nothing,-     Nothing]-,-testRegex "(?<=(.))X" [ERROR]-    ["WXYZ",-     "\\x{256}XYZ ",-     "*** Failers",-     "XYZ "]-    [Just [" 0: X"],-     Just [" 1: W"],-     Just [" 0: X"],-     Just [" 1: \\x{256}"],-     Nothing,-     Nothing]-,-testRegex "X(\\C{3})" [ERROR]-    ["X\\x{1234}"]-    [Just [" 0: X\\x{1234}"],-     Just [" 1: \\x{1234}"]]-,-testRegex "X(\\C{4})" [ERROR]-    ["X\\x{1234}YZ",-     "",-     "/X\\C*/8",-     "XYZabcdce",-     "",-     "/X\\C*?/8",-     "XYZabcde",-     "",-     "/X\\C{3,5}/8",-     "Xabcdefg   ",-     "X\\x{1234} ",-     "X\\x{1234}YZ",-     "X\\x{1234}\\x{512}  ",-     "X\\x{1234}\\x{512}YZ"]-    [Just [" 0: X\\x{1234}Y"],-     Just [" 1: \\x{1234}Y"],-     Just ["/X\\C*/8"],-     Just [" 0: XYZabcdce"],-     Just ["/X\\C*?/8"],-     Just [" 0: X"],-     Just ["/X\\C{3,5}/8"],-     Just [" 0: Xabcde"],-     Just [" 0: X\\x{1234}"],-     Just [" 0: X\\x{1234}YZ"],-     Just [" 0: X\\x{1234}\\x{512}"],-     Just [" 0: X\\x{1234}\\x{512}"]]-,-testRegex "X\\C{3,5}?" [ERROR]-    ["Xabcdefg   ",-     "X\\x{1234} ",-     "X\\x{1234}YZ",-     "X\\x{1234}\\x{512}  "]-    [Just [" 0: Xabc"],-     Just [" 0: X\\x{1234}"],-     Just [" 0: X\\x{1234}"],-     Just [" 0: X\\x{1234}"]]-,-testRegex "[^a]+" [ERROR]-    ["bcd",-     "\\x{100}aY\\x{256}Z ",-     "",-     "/^[^a]{2}/8",-     "\\x{100}bc",-     "",-     "/^[^a]{2,}/8",-     "\\x{100}bcAa"]-    [Just [" 0: bcd"],-     Just [" 0: \\x{100}"],-     Just [" 0: Y\\x{256}Z"],-     Just ["/^[^a]{2}/8"],-     Just [" 0: \\x{100}b"],-     Just ["/^[^a]{2,}/8"],-     Just [" 0: \\x{100}bcA"]]-,-testRegex "^[^a]{2,}?" [ERROR]-    ["\\x{100}bca"]-    [Just [" 0: \\x{100}b"]]-,-testRegex "[^a]+" [ERROR]-    ["bcd",-     "\\x{100}aY\\x{256}Z ",-     "",-     "/^[^a]{2}/8i",-     "\\x{100}bc",-     "",-     "/^[^a]{2,}/8i",-     "\\x{100}bcAa"]-    [Just [" 0: bcd"],-     Just [" 0: \\x{100}"],-     Just [" 0: Y\\x{256}Z"],-     Just ["/^[^a]{2}/8i"],-     Just [" 0: \\x{100}b"],-     Just ["/^[^a]{2,}/8i"],-     Just [" 0: \\x{100}bc"]]-,-testRegex "^[^a]{2,}?" [caseless]-    ["\\x{100}bca"]-    [Just [" 0: \\x{100}b"]]-,-testRegex "\\x{100}{0,0}" [ERROR]-    ["abcd",-     "",-     "/\\x{100}?/8",-     "abcd",-     "\\x{100}\\x{100} "]-    [Just [" 0: "],-     Just ["/\\x{100}?/8"],-     Just [" 0: "],-     Just [" 0: \\x{100}"]]-,-testRegex "\\x{100}{0,3}" [ERROR]-    ["\\x{100}\\x{100} ",-     "\\x{100}\\x{100}\\x{100}\\x{100} ",-     "",-     "/\\x{100}*/8",-     "abce",-     "\\x{100}\\x{100}\\x{100}\\x{100} "]-    [Just [" 0: \\x{100}\\x{100}"],-     Just [" 0: \\x{100}\\x{100}\\x{100}"],-     Just ["/\\x{100}*/8"],-     Just [" 0: "],-     Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\x{100}{1,1}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100} "]-    [Just [" 0: \\x{100}"]]-,-testRegex "\\x{100}{1,3}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100} "]-    [Just [" 0: \\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\x{100}+" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100} "]-    [Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\x{100}{3}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}XX"]-    [Just [" 0: \\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\x{100}{3,5}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}XX"]-    [Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\x{100}{3,}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}XX"]-    [Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"]]-,-testRegex "(?<=a\\x{100}{2}b)X" [ERROR]-    ["Xyyya\\x{100}\\x{100}bXzzz"]-    [Just [" 0: X"],-     Just [" 0+ zzz"]]-,-testRegex "\\D*" [ERROR]-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "\\D*" [ERROR]-    ["\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"]-    [Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\D" [ERROR]-    ["1X2",-     "1\\x{100}2 ",-     "",-     "/>\\S/8",-     "> >X Y",-     "> >\\x{100} Y",-     "",-     "/\\d/8",-     "\\x{100}3",-     "",-     "/\\s/8",-     "\\x{100} X",-     "",-     "/\\D+/8",-     "12abcd34",-     "*** Failers",-     "1234  "]-    [Just [" 0: X"],-     Just [" 0: \\x{100}"],-     Just ["/>\\S/8"],-     Just [" 0: >X"],-     Just [" 0: >\\x{100}"],-     Just ["/\\d/8"],-     Just [" 0: 3"],-     Just ["/\\s/8"],-     Just [" 0:  "],-     Just ["/\\D+/8"],-     Just [" 0: abcd"],-     Just [" 0: *** Failers"],-     Nothing]-,-testRegex "\\D{2,3}" [ERROR]-    ["12abcd34",-     "12ab34",-     "*** Failers  ",-     "1234",-     "12a34  "]-    [Just [" 0: abc"],-     Just [" 0: ab"],-     Just [" 0: ***"],-     Nothing,-     Nothing]-,-testRegex "\\D{2,3}?" [ERROR]-    ["12abcd34",-     "12ab34",-     "*** Failers  ",-     "1234",-     "12a34  "]-    [Just [" 0: ab"],-     Just [" 0: ab"],-     Just [" 0: **"],-     Nothing,-     Nothing]-,-testRegex "\\d+" [ERROR]-    ["12abcd34",-     "*** Failers"]-    [Just [" 0: 12"],-     Nothing]-,-testRegex "\\d{2,3}" [ERROR]-    ["12abcd34",-     "1234abcd",-     "*** Failers  ",-     "1.4 "]-    [Just [" 0: 12"],-     Just [" 0: 123"],-     Nothing,-     Nothing]-,-testRegex "\\d{2,3}?" [ERROR]-    ["12abcd34",-     "1234abcd",-     "*** Failers  ",-     "1.4 "]-    [Just [" 0: 12"],-     Just [" 0: 12"],-     Nothing,-     Nothing]-,-testRegex "\\S+" [ERROR]-    ["12abcd34",-     "*** Failers",-     "\\    \\ "]-    [Just [" 0: 12abcd34"],-     Just [" 0: ***"],-     Nothing]-,-testRegex "\\S{2,3}" [ERROR]-    ["12abcd34",-     "1234abcd",-     "*** Failers",-     "\\     \\  "]-    [Just [" 0: 12a"],-     Just [" 0: 123"],-     Just [" 0: ***"],-     Nothing]-,-testRegex "\\S{2,3}?" [ERROR]-    ["12abcd34",-     "1234abcd",-     "*** Failers",-     "\\     \\  "]-    [Just [" 0: 12"],-     Just [" 0: 12"],-     Just [" 0: **"],-     Nothing]-,-testRegex ">\\s+<" [ERROR]-    ["12>      <34",-     "*** Failers"]-    [Just [" 0: >      <"],-     Just [" 0+ 34"],-     Nothing]-,-testRegex ">\\s{2,3}<" [ERROR]-    ["ab>  <cd",-     "ab>   <ce",-     "*** Failers",-     "ab>    <cd "]-    [Just [" 0: >  <"],-     Just [" 0+ cd"],-     Just [" 0: >   <"],-     Just [" 0+ ce"],-     Nothing,-     Nothing]-,-testRegex ">\\s{2,3}?<" [ERROR]-    ["ab>  <cd",-     "ab>   <ce",-     "*** Failers",-     "ab>    <cd "]-    [Just [" 0: >  <"],-     Just [" 0+ cd"],-     Just [" 0: >   <"],-     Just [" 0+ ce"],-     Nothing,-     Nothing]-,-testRegex "\\w+" [ERROR]-    ["12      34",-     "*** Failers",-     "+++=*! "]-    [Just [" 0: 12"],-     Just [" 0: Failers"],-     Nothing]-,-testRegex "\\w{2,3}" [ERROR]-    ["ab  cd",-     "abcd ce",-     "*** Failers",-     "a.b.c"]-    [Just [" 0: ab"],-     Just [" 0: abc"],-     Just [" 0: Fai"],-     Nothing]-,-testRegex "\\w{2,3}?" [ERROR]-    ["ab  cd",-     "abcd ce",-     "*** Failers",-     "a.b.c"]-    [Just [" 0: ab"],-     Just [" 0: ab"],-     Just [" 0: Fa"],-     Nothing]-,-testRegex "\\W+" [ERROR]-    ["12====34",-     "*** Failers",-     "abcd "]-    [Just [" 0: ===="],-     Just [" 0: *** "],-     Nothing]-,-testRegex "\\W{2,3}" [ERROR]-    ["ab====cd",-     "ab==cd",-     "*** Failers",-     "a.b.c"]-    [Just [" 0: ==="],-     Just [" 0: =="],-     Just [" 0: ***"],-     Nothing]-,-testRegex "\\W{2,3}?" [ERROR]-    ["ab====cd",-     "ab==cd",-     "*** Failers",-     "a.b.c"]-    [Just [" 0: =="],-     Just [" 0: =="],-     Just [" 0: **"],-     Nothing]-,-testRegex "[\\x{100}]" [ERROR]-    ["\\x{100}",-     "Z\\x{100}",-     "\\x{100}Z",-     "*** Failers "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{100}"],-     Just [" 0: \\x{100}"],-     Nothing]-,-testRegex "[Z\\x{100}]" [ERROR]-    ["Z\\x{100}",-     "\\x{100}",-     "\\x{100}Z",-     "*** Failers "]-    [Just [" 0: Z"],-     Just [" 0: \\x{100}"],-     Just [" 0: \\x{100}"],-     Nothing]-,-testRegex "[\\x{100}\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Nothing]-,-testRegex "[\\x{100}-\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{111}cd ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{111}"],-     Nothing]-,-testRegex "[z-\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{111}cd ",-     "abzcd",-     "ab|cd  ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{111}"],-     Just [" 0: z"],-     Just [" 0: |"],-     Nothing]-,-testRegex "[Q\\x{100}\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "Q? ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: Q"],-     Nothing]-,-testRegex "[Q\\x{100}-\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{111}cd ",-     "Q? ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{111}"],-     Just [" 0: Q"],-     Nothing]-,-testRegex "[Qz-\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{111}cd ",-     "abzcd",-     "ab|cd  ",-     "Q? ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{111}"],-     Just [" 0: z"],-     Just [" 0: |"],-     Just [" 0: Q"],-     Nothing]-,-testRegex "[\\x{100}\\x{200}]{1,3}" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{200}\\x{100}\\x{200}\\x{100}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{200}\\x{100}\\x{200}"],-     Nothing]-,-testRegex "[\\x{100}\\x{200}]{1,3}?" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{200}\\x{100}\\x{200}\\x{100}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{200}"],-     Nothing]-,-testRegex "[Q\\x{100}\\x{200}]{1,3}" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{200}\\x{100}\\x{200}\\x{100}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{200}\\x{100}\\x{200}"],-     Nothing]-,-testRegex "[Q\\x{100}\\x{200}]{1,3}?" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{200}\\x{100}\\x{200}\\x{100}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{200}"],-     Nothing]-,-testRegex "(?<=[\\x{100}\\x{200}])X" [ERROR]-    ["abc\\x{200}X",-     "abc\\x{100}X ",-     "*** Failers",-     "X  "]-    [Just [" 0: X"],-     Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "(?<=[Q\\x{100}\\x{200}])X" [ERROR]-    ["abc\\x{200}X",-     "abc\\x{100}X ",-     "abQX ",-     "*** Failers",-     "X  "]-    [Just [" 0: X"],-     Just [" 0: X"],-     Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "(?<=[\\x{100}\\x{200}]{3})X" [ERROR]-    ["abc\\x{100}\\x{200}\\x{100}X",-     "*** Failers",-     "abc\\x{200}X",-     "X  "]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[^\\x{100}\\x{200}]X" [ERROR]-    ["AX",-     "\\x{150}X",-     "\\x{500}X ",-     "*** Failers",-     "\\x{100}X",-     "\\x{200}X   "]-    [Just [" 0: AX"],-     Just [" 0: \\x{150}X"],-     Just [" 0: \\x{500}X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[^Q\\x{100}\\x{200}]X" [ERROR]-    ["AX",-     "\\x{150}X",-     "\\x{500}X ",-     "*** Failers",-     "\\x{100}X",-     "\\x{200}X   ",-     "QX "]-    [Just [" 0: AX"],-     Just [" 0: \\x{150}X"],-     Just [" 0: \\x{500}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[^\\x{100}-\\x{200}]X" [ERROR]-    ["AX",-     "\\x{500}X ",-     "*** Failers",-     "\\x{100}X",-     "\\x{150}X",-     "\\x{200}X   "]-    [Just [" 0: AX"],-     Just [" 0: \\x{500}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\Cb" []-    ["aXb",-     "a\\nb",-     "",-     "/a\\Cb/8",-     "aXb",-     "a\\nb",-     "*** Failers ",-     "a\\x{100}b "]-    [Just [" 0: aXb"],-     Just [" 0: a\\x0ab"],-     Just ["/a\\Cb/8"],-     Just [" 0: aXb"],-     Just [" 0: a\\x{0a}b"],-     Nothing,-     Nothing]-,-testRegex "[z-\\x{100}]" [caseless]-    ["z",-     "Z ",-     "\\x{100}",-     "*** Failers",-     "\\x{102}",-     "y    "]-    [Just [" 0: z"],-     Just [" 0: Z"],-     Just [" 0: \\x{100}"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[\\xFF]" []-    [">\\xff<"]-    [Just [" 0: \\xff"]]-,-testRegex "[\\xff]" [ERROR]-    [">\\x{ff}<"]-    [Just [" 0: \\x{ff}"]]-,-testRegex "[^\\xFF]" []-    ["XYZ"]-    [Just [" 0: X"]]-,-testRegex "[^\\xff]" [ERROR]-    ["XYZ",-     "\\x{123} "]-    [Just [" 0: X"],-     Just [" 0: \\x{123}"]]-,-testRegex "^[ac]*b" [ERROR]-    ["xb"]-    [Nothing]-,-testRegex "^[ac\\x{100}]*b" [ERROR]-    ["xb"]-    [Nothing]-,-testRegex "^[^x]*b" [caseless]-    ["xb"]-    [Nothing]-,-testRegex "^[^x]*b" [ERROR]-    ["xb",-     "",-     "/^\\d*b/8",-     "xb "]-    [Nothing,-     Just ["/^\\d*b/8"],-     Nothing]-,-testRegex "(|a)" [ERROR]-    ["catac",-     "a\\x{256}a "]-    [Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 1: "],-     Just [" 0: a"],-     Just [" 1: a"],-     Just [" 0: "],-     Just [" 1: "]]-,-testRegex "^\\x{85}$" [caseless]-    ["\\x{85}"]-    [Just [" 0: \\x{85}"]]-,-testRegex "^\225\136\180" [ERROR]-    ["\225\136\180 "]-    [Just [" 0: \\x{1234}"]]-,-testRegex "^\\\225\136\180" [ERROR]-    ["\225\136\180 "]-    [Just [" 0: \\x{1234}"]]-,-testRegex "(?s)(.{1,5})" [ERROR]-    ["abcdefg",-     "ab"]-    [Just [" 0: abcde"],-     Just [" 1: abcde"],-     Just [" 0: ab"],-     Just [" 1: ab"]]-,-testRegex "a*\\x{100}*\\w" [ERROR]-    ["a "]-    [Just [" 0: a"]]-,-testRegex "\\S\\S" [ERROR]-    ["A\\x{a3}BC",-     "",-     "/\\S{2}/8g",-     "A\\x{a3}BC",-     "",-     "/\\W\\W/8g",-     "+\\x{a3}== "]-    [Just [" 0: A\\x{a3}"],-     Just [" 0: BC"],-     Just ["/\\S{2}/8g"],-     Just [" 0: A\\x{a3}"],-     Just [" 0: BC"],-     Just ["/\\W\\W/8g"],-     Just [" 0: +\\x{a3}"],-     Just [" 0: =="]]-,-testRegex "\\W{2}" [ERROR]-    ["+\\x{a3}== "]-    [Just [" 0: +\\x{a3}"],-     Just [" 0: =="]]-,-testRegex " End of testinput4 " []-    []-    []
− tests/testdata/regex5.tests
− tests/testdata/regex6.tests
@@ -1,1585 +0,0 @@-testRegex "^\\pC\\pL\\pM\\pN\\pP\\pS\\pZ<" [ERROR]-    ["\\x7f\\x{c0}\\x{30f}\\x{660}\\x{66c}\\x{f01}\\x{1680}<",-     "\\np\\x{300}9!\\$ < ",-     "** Failers ",-     "ap\\x{300}9!\\$ < ",-     "",-     "/^\\PC/8",-     "X",-     "** Failers ",-     "\\x7f",-     "",-     "/^\\PL/8",-     "9",-     "** Failers ",-     "\\x{c0}",-     "",-     "/^\\PM/8",-     "X",-     "** Failers ",-     "\\x{30f}",-     "",-     "/^\\PN/8",-     "X",-     "** Failers ",-     "\\x{660}",-     "",-     "/^\\PP/8",-     "X",-     "** Failers ",-     "\\x{66c}",-     "",-     "/^\\PS/8",-     "X",-     "** Failers ",-     "\\x{f01}",-     "",-     "/^\\PZ/8",-     "X",-     "** Failers ",-     "\\x{1680}",-     "",-     "/^\\p{Cc}/8",-     "\\x{017}",-     "\\x{09f} ",-     "** Failers",-     "\\x{0600} ",-     "",-     "/^\\p{Cf}/8",-     "\\x{601}",-     "** Failers",-     "\\x{09f} ",-     "",-     "/^\\p{Cn}/8",-     "\\x{e0000}",-     "** Failers",-     "\\x{09f} ",-     "",-     "/^\\p{Co}/8",-     "\\x{f8ff}",-     "** Failers",-     "\\x{09f} ",-     "",-     "/^\\p{Cs}/8",-     "\\?\\x{dfff}",-     "** Failers",-     "\\x{09f} ",-     "",-     "/^\\p{Ll}/8",-     "a",-     "** Failers ",-     "Z",-     "\\x{e000}  ",-     "",-     "/^\\p{Lm}/8",-     "\\x{2b0}",-     "** Failers",-     "a ",-     "",-     "/^\\p{Lo}/8",-     "\\x{1bb}",-     "\\x{3400}",-     "\\x{3401}",-     "\\x{4d00}",-     "\\x{4db4}",-     "\\x{4db5}     ",-     "** Failers",-     "a ",-     "\\x{2b0}",-     "\\x{4db6} ",-     "",-     "/^\\p{Lt}/8",-     "\\x{1c5}",-     "** Failers",-     "a ",-     "\\x{2b0}",-     "",-     "/^\\p{Lu}/8",-     "A",-     "** Failers",-     "\\x{2b0}",-     "",-     "/^\\p{Mc}/8",-     "\\x{903}",-     "** Failers",-     "X",-     "\\x{300}",-     "",-     "/^\\p{Me}/8",-     "\\x{488}",-     "** Failers",-     "X",-     "\\x{903}",-     "\\x{300}",-     "",-     "/^\\p{Mn}/8",-     "\\x{300}",-     "** Failers",-     "X",-     "\\x{903}",-     "",-     "/^\\p{Nd}+/8",-     "0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}\\x{668}\\x{669}\\x{66a}",-     "\\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}\\x{6f9}\\x{6fa}",-     "\\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}\\x{96f}\\x{970}",-     "** Failers",-     "X",-     "",-     "/^\\p{Nl}/8",-     "\\x{16ee}",-     "** Failers",-     "X",-     "\\x{966}",-     "",-     "/^\\p{No}/8",-     "\\x{b2}",-     "\\x{b3}",-     "** Failers",-     "X",-     "\\x{16ee}",-     "",-     "/^\\p{Pc}/8",-     "\\x5f",-     "\\x{203f}",-     "** Failers",-     "X",-     "-",-     "\\x{58a}",-     "",-     "/^\\p{Pd}/8",-     "-",-     "\\x{58a}",-     "** Failers",-     "X",-     "\\x{203f}",-     "",-     "/^\\p{Pe}/8",-     ")",-     "]",-     "}",-     "\\x{f3b}",-     "** Failers",-     "X",-     "\\x{203f}",-     "(",-     "[",-     "{",-     "\\x{f3c}",-     "",-     "/^\\p{Pf}/8",-     "\\x{bb}",-     "\\x{2019}",-     "** Failers",-     "X",-     "\\x{203f}",-     "",-     "/^\\p{Pi}/8",-     "\\x{ab}",-     "\\x{2018}",-     "** Failers",-     "X",-     "\\x{203f}",-     "",-     "/^\\p{Po}/8",-     "!",-     "\\x{37e}",-     "** Failers",-     "X",-     "\\x{203f}",-     "",-     "/^\\p{Ps}/8",-     "(",-     "[",-     "{",-     "\\x{f3c}",-     "** Failers",-     "X",-     ")",-     "]",-     "}",-     "\\x{f3b}",-     "",-     "/^\\p{Sc}+/8",-     "$\\x{a2}\\x{a3}\\x{a4}\\x{a5}\\x{a6}",-     "\\x{9f2}",-     "** Failers",-     "X",-     "\\x{2c2}",-     "",-     "/^\\p{Sk}/8",-     "\\x{2c2}",-     "** Failers",-     "X",-     "\\x{9f2}",-     "",-     "/^\\p{Sm}+/8",-     "+<|~\\x{ac}\\x{2044}",-     "** Failers",-     "X",-     "\\x{9f2}",-     "",-     "/^\\p{So}/8",-     "\\x{a6}",-     "\\x{482} ",-     "** Failers",-     "X",-     "\\x{9f2}",-     "",-     "/^\\p{Zl}/8",-     "\\x{2028}",-     "** Failers",-     "X",-     "\\x{2029}",-     "",-     "/^\\p{Zp}/8",-     "\\x{2029}",-     "** Failers",-     "X",-     "\\x{2028}",-     "",-     "/^\\p{Zs}/8",-     "\\ \\",-     "\\x{a0}",-     "\\x{1680}",-     "\\x{180e}",-     "\\x{2000}",-     "\\x{2001}     ",-     "** Failers",-     "\\x{2028}",-     "\\x{200d} ",-     "",-     "/\\p{Nd}+(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}+?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2,}(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2,}?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2}(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2,3}(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2,3}?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}??(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*+(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*+(...)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*+(....)/8",-     "** Failers",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Lu}/8i",-     "A",-     "a\\x{10a0}B ",-     "** Failers ",-     "a",-     "\\x{1d00}  "]-    [Just [" 0: \\x{7f}\\x{c0}\\x{30f}\\x{660}\\x{66c}\\x{f01}\\x{1680}<"],-     Just [" 0: \\x{0a}p\\x{300}9!$ <"],-     Nothing,-     Nothing,-     Just ["/^\\PC/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PL/8"],-     Just [" 0: 9"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PM/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PN/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PP/8"],-     Just [" 0: X"],-     Nothing,-     Nothing,-     Just ["/^\\PS/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PZ/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\p{Cc}/8"],-     Just [" 0: \\x{17}"],-     Just [" 0: \\x{9f}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Cf}/8"],-     Just [" 0: \\x{601}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Cn}/8"],-     Just [" 0: \\x{e0000}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Co}/8"],-     Just [" 0: \\x{f8ff}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Cs}/8"],-     Just [" 0: \\x{dfff}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Ll}/8"],-     Just [" 0: a"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Lm}/8"],-     Just [" 0: \\x{2b0}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Lo}/8"],-     Just [" 0: \\x{1bb}"],-     Just [" 0: \\x{3400}"],-     Just [" 0: \\x{3401}"],-     Just [" 0: \\x{4d00}"],-     Just [" 0: \\x{4db4}"],-     Just [" 0: \\x{4db5}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Lt}/8"],-     Just [" 0: \\x{1c5}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Lu}/8"],-     Just [" 0: A"],-     Nothing,-     Nothing,-     Just ["/^\\p{Mc}/8"],-     Just [" 0: \\x{903}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Me}/8"],-     Just [" 0: \\x{488}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Mn}/8"],-     Just [" 0: \\x{300}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Nd}+/8"],-     Just [" 0: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}\\x{668}\\x{669}"],-     Just [" 0: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}\\x{6f9}"],-     Just [" 0: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}\\x{96f}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Nl}/8"],-     Just [" 0: \\x{16ee}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{No}/8"],-     Just [" 0: \\x{b2}"],-     Just [" 0: \\x{b3}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pc}/8"],-     Just [" 0: _"],-     Just [" 0: \\x{203f}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pd}/8"],-     Just [" 0: -"],-     Just [" 0: \\x{58a}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pe}/8"],-     Just [" 0: )"],-     Just [" 0: ]"],-     Just [" 0: }"],-     Just [" 0: \\x{f3b}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pf}/8"],-     Just [" 0: \\x{bb}"],-     Just [" 0: \\x{2019}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pi}/8"],-     Just [" 0: \\x{ab}"],-     Just [" 0: \\x{2018}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Po}/8"],-     Just [" 0: !"],-     Just [" 0: \\x{37e}"],-     Just [" 0: *"],-     Nothing,-     Nothing,-     Just ["/^\\p{Ps}/8"],-     Just [" 0: ("],-     Just [" 0: ["],-     Just [" 0: {"],-     Just [" 0: \\x{f3c}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Sc}+/8"],-     Just [" 0: $\\x{a2}\\x{a3}\\x{a4}\\x{a5}"],-     Just [" 0: \\x{9f2}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Sk}/8"],-     Just [" 0: \\x{2c2}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Sm}+/8"],-     Just [" 0: +<|~\\x{ac}\\x{2044}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{So}/8"],-     Just [" 0: \\x{a6}"],-     Just [" 0: \\x{482}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Zl}/8"],-     Just [" 0: \\x{2028}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Zp}/8"],-     Just [" 0: \\x{2029}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Zs}/8"],-     Just [" 0:  "],-     Just [" 0: \\x{a0}"],-     Just [" 0: \\x{1680}"],-     Just [" 0: \\x{180e}"],-     Just [" 0: \\x{2000}"],-     Just [" 0: \\x{2001}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/\\p{Nd}+(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: AB"],-     Just ["/\\p{Nd}+?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}"],-     Just [" 1: \\x{661}\\x{662}"],-     Just ["/\\p{Nd}{2,}(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: AB"],-     Just ["/\\p{Nd}{2,}?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}A"],-     Just [" 1: \\x{662}A"],-     Just ["/\\p{Nd}*(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: AB"],-     Just ["/\\p{Nd}*?(..)/8"],-     Just [" 0: \\x{660}\\x{661}"],-     Just [" 1: \\x{660}\\x{661}"],-     Just ["/\\p{Nd}{2}(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}A"],-     Just [" 1: \\x{662}A"],-     Just ["/\\p{Nd}{2,3}(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: AB"],-     Just ["/\\p{Nd}{2,3}?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}A"],-     Just [" 1: \\x{662}A"],-     Just ["/\\p{Nd}?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}"],-     Just [" 1: \\x{661}\\x{662}"],-     Just ["/\\p{Nd}??(..)/8"],-     Just [" 0: \\x{660}\\x{661}"],-     Just [" 1: \\x{660}\\x{661}"],-     Just ["/\\p{Nd}*+(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: AB"],-     Just ["/\\p{Nd}*+(...)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}ABC"],-     Just [" 1: ABC"],-     Just ["/\\p{Nd}*+(....)/8"],-     Just [" 0: ** F"],-     Just [" 1: ** F"],-     Nothing,-     Just ["/\\p{Lu}/8i"],-     Just [" 0: A"],-     Just [" 0: \\x{10a0}"],-     Just [" 0: F"],-     Nothing,-     Nothing]-,-testRegex "\\p{^Lu}" [caseless]-    ["1234",-     "** Failers",-     "ABC "]-    [Just [" 0: 1"],-     Just [" 0: *"],-     Nothing]-,-testRegex "\\P{Lu}" [caseless]-    ["1234",-     "** Failers",-     "ABC "]-    [Just [" 0: 1"],-     Just [" 0: *"],-     Nothing]-,-testRegex "(?<=A\\p{Nd})XYZ" [ERROR]-    ["A2XYZ",-     "123A5XYZPQR",-     "ABA\\x{660}XYZpqr",-     "** Failers",-     "AXYZ",-     "XYZ     ",-     "",-     "/(?<!\\pL)XYZ/8",-     "1XYZ",-     "AB=XYZ.. ",-     "XYZ ",-     "** Failers",-     "WXYZ "]-    [Just [" 0: XYZ"],-     Just [" 0: XYZ"],-     Just [" 0: XYZ"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?<!\\pL)XYZ/8"],-     Just [" 0: XYZ"],-     Just [" 0: XYZ"],-     Just [" 0: XYZ"],-     Nothing,-     Nothing]-,-testRegex "[\\p{L}]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[\\p{^L}]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[\\P{L}]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[\\P{^L}]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["No options"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[abc\\p{L}\\x{0660}]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: utf8"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "[\\p{Nd}]" [ERROR]-    ["1234"]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: utf8"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: 1"]]-,-testRegex "[\\p{Nd}+-]+" [ERROR]-    ["1234",-     "12-34",-     "12+\\x{661}-34  ",-     "** Failers",-     "abcd  "]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: utf8"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: 1234"],-     Just [" 0: 12-34"],-     Just [" 0: 12+\\x{661}-34"],-     Nothing,-     Nothing]-,-testRegex "[\\P{Nd}]+" [ERROR]-    ["abcd",-     "** Failers",-     "1234"]-    [Just [" 0: abcd"],-     Just [" 0: ** Failers"],-     Nothing]-,-testRegex "\\D+" [ERROR]-    ["11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-     "",-     "/\\P{Nd}+/8",-     "11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["/\\P{Nd}+/8"],-     Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "[\\D]+" [ERROR]-    ["11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "[\\P{Nd}]+" [ERROR]-    ["11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "[\\D\\P{Nd}]+" [ERROR]-    ["11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "\\pL" [ERROR]-    ["a",-     "A "]-    [Just [" 0: a"],-     Just [" 0: A"]]-,-testRegex "\\pL" [caseless]-    ["a",-     "A ",-     "",-     "/\\p{Lu}/8 ",-     "A",-     "aZ",-     "** Failers",-     "abc   "]-    [Just [" 0: a"],-     Just [" 0: A"],-     Just ["/\\p{Lu}/8 "],-     Just [" 0: A"],-     Just [" 0: Z"],-     Just [" 0: F"],-     Nothing]-,-testRegex "\\p{Lu}" [caseless]-    ["A",-     "aZ",-     "** Failers",-     "abc   "]-    [Just [" 0: A"],-     Just [" 0: Z"],-     Just [" 0: F"],-     Nothing]-,-testRegex "\\p{Ll}" [ERROR]-    ["a",-     "Az",-     "** Failers",-     "ABC   "]-    [Just [" 0: a"],-     Just [" 0: z"],-     Just [" 0: a"],-     Nothing]-,-testRegex "\\p{Ll}" [ERROR]-    ["a",-     "Az",-     "** Failers",-     "ABC   "]-    [Just [" 0: a"],-     Just [" 0: z"],-     Just [" 0: a"],-     Nothing]-,-testRegex "^\\x{c0}$" [caseless]-    ["\\x{c0}",-     "\\x{e0} "]-    [Just [" 0: \\x{c0}"],-     Just [" 0: \\x{e0}"]]-,-testRegex "^\\x{e0}$" [caseless]-    ["\\x{c0}",-     "\\x{e0} "]-    [Just [" 0: \\x{c0}"],-     Just [" 0: \\x{e0}"]]-,-testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]-    ["A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}",-     "** Failers",-     "a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}   ",-     "A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}",-     "A\\x{391}\\x{1044F}\\x{ff3a}\\x{1fb0}",-     "A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}",-     "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]-    [Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [caseless]-    ["A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}",-     "a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}   ",-     "A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}",-     "A\\x{391}\\x{1044F}\\x{ff3a}\\x{1fb0}",-     "A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}",-     "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]-    [Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],-     Just [" 0: a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],-     Just [" 0: A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}"],-     Just [" 0: A\\x{391}\\x{1044f}\\x{ff3a}\\x{1fb0}"],-     Just [" 0: A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}"],-     Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]]-,-testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless utf8"],-     Just ["First char = 'A' (caseless)"],-     Just ["No need char"]]-,-testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: utf8"],-     Just ["First char = 'A'"],-     Just ["Need char = 176"]]-,-testRegex "AB\\x{1fb0}" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: utf8"],-     Just ["First char = 'A'"],-     Just ["Need char = 176"]]-,-testRegex "AB\\x{1fb0}" [caseless]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless utf8"],-     Just ["First char = 'A' (caseless)"],-     Just ["Need char = 'B' (caseless)"]]-,-testRegex "\\x{391}+" [caseless]-    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"]-    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"]]-,-testRegex "\\x{391}{3,5}(.)" [caseless]-    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"]-    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"],-     Just [" 1: X"]]-,-testRegex "\\x{391}{3,5}?(.)" [caseless]-    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"]-    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}"],-     Just [" 1: \\x{3b1}"]]-,-testRegex "[\\x{391}\\x{ff3a}]" [caseless]-    ["\\x{391}",-     "\\x{ff3a}",-     "\\x{3b1}",-     "\\x{ff5a}   ",-     "",-     "/[\\x{c0}\\x{391}]/8i",-     "\\x{c0}",-     "\\x{e0} "]-    [Just [" 0: \\x{391}"],-     Just [" 0: \\x{ff3a}"],-     Just [" 0: \\x{3b1}"],-     Just [" 0: \\x{ff5a}"],-     Just ["/[\\x{c0}\\x{391}]/8i"],-     Just [" 0: \\x{c0}"],-     Just [" 0: \\x{e0}"]]-,-testRegex "[\\x{105}-\\x{109}]" [ERROR]-    ["\\x{104}",-     "\\x{105}",-     "\\x{109}  ",-     "** Failers",-     "\\x{100}",-     "\\x{10a} ",-     "",-     "/[z-\\x{100}]/8iDZ ",-     "Z",-     "z",-     "\\x{39c}",-     "\\x{178}",-     "|",-     "\\x{80}",-     "\\x{ff}",-     "\\x{100}",-     "\\x{101} ",-     "** Failers",-     "\\x{102}",-     "Y",-     "y           "]-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless utf8"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: \\x{104}"],-     Just [" 0: \\x{105}"],-     Just [" 0: \\x{109}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/[z-\\x{100}]/8iDZ "],-     Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless utf8"],-     Just ["No first char"],-     Just ["No need char"],-     Just [" 0: Z"],-     Just [" 0: z"],-     Just [" 0: \\x{39c}"],-     Just [" 0: \\x{178}"],-     Just [" 0: |"],-     Just [" 0: \\x{80}"],-     Just [" 0: \\x{ff}"],-     Just [" 0: \\x{100}"],-     Just [" 0: \\x{101}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[z-\\x{100}]" [caseless]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: caseless utf8"],-     Just ["No first char"],-     Just ["No need char"]]-,-testRegex "^\\X" [ERROR]-    ["A",-     "A\\x{300}BC ",-     "A\\x{300}\\x{301}\\x{302}BC ",-     "*** Failers",-     "\\x{300}  "]-    [Just [" 0: A"],-     Just [" 0: A\\x{300}"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}"],-     Just [" 0: *"],-     Nothing]-,-testRegex "^[\\X]" [ERROR]-    ["X123",-     "*** Failers",-     "AXYZ"]-    [Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "^(\\X*)C" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",-     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]-    [Just [" 0: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}B"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}"]]-,-testRegex "^(\\X*?)C" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",-     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]-    [Just [" 0: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}B"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}B"]]-,-testRegex "^(\\X*)(.)" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",-     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]-    [Just [" 0: A\\x{300}\\x{301}\\x{302}BCA"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 2: A"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}"],-     Just [" 2: C"]]-,-testRegex "^(\\X*?)(.)" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",-     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]-    [Just [" 0: A"],-     Just [" 1: "],-     Just [" 2: A"],-     Just [" 0: A"],-     Just [" 1: "],-     Just [" 2: A"]]-,-testRegex "^\\X(.)" [ERROR]-    ["*** Failers",-     "A\\x{300}\\x{301}\\x{302}"]-    [Just [" 0: **"],-     Just [" 1: *"],-     Nothing]-,-testRegex "^\\X{2,3}(.)" [ERROR]-    ["A\\x{300}\\x{301}B\\x{300}X",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}DA\\x{300}X",-     "",-     "/^\\X{2,3}?(.)/8",-     "A\\x{300}\\x{301}B\\x{300}X",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}DA\\x{300}X",-     "",-     "/^\\p{Han}+/8",-     "\\x{2e81}\\x{3007}\\x{2f804}\\x{31a0}",-     "** Failers",-     "\\x{2e7f}  "]-    [Just [" 0: A\\x{300}\\x{301}B\\x{300}X"],-     Just [" 1: X"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],-     Just [" 1: C"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X"],-     Just [" 1: X"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}D"],-     Just [" 1: D"],-     Just ["/^\\X{2,3}?(.)/8"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}X"],-     Just [" 1: X"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],-     Just [" 1: C"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],-     Just [" 1: C"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],-     Just [" 1: C"],-     Just ["/^\\p{Han}+/8"],-     Just [" 0: \\x{2e81}\\x{3007}\\x{2f804}"],-     Nothing,-     Nothing]-,-testRegex "^\\P{Katakana}+" [ERROR]-    ["\\x{3105}",-     "** Failers",-     "\\x{30ff}  "]-    [Just [" 0: \\x{3105}"],-     Just [" 0: ** Failers"],-     Nothing]-,-testRegex "^[\\p{Arabic}]" [ERROR]-    ["\\x{06e9}",-     "\\x{060b}",-     "** Failers",-     "X\\x{06e9}   "]-    [Just [" 0: \\x{6e9}"],-     Just [" 0: \\x{60b}"],-     Nothing,-     Nothing]-,-testRegex "^[\\P{Yi}]" [ERROR]-    ["\\x{2f800}",-     "** Failers",-     "\\x{a014}",-     "\\x{a4c6}   ",-     "",-     "/^\\p{Any}X/8",-     "AXYZ",-     "\\x{1234}XYZ ",-     "** Failers",-     "X  ",-     "",-     "/^\\P{Any}X/8",-     "** Failers",-     "AX",-     "",-     "/^\\p{Any}?X/8",-     "XYZ",-     "AXYZ",-     "\\x{1234}XYZ ",-     "** Failers",-     "ABXYZ   "]-    [Just [" 0: \\x{2f800}"],-     Just [" 0: *"],-     Nothing,-     Nothing,-     Just ["/^\\p{Any}X/8"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Nothing,-     Nothing,-     Just ["/^\\P{Any}X/8"],-     Nothing,-     Nothing,-     Just ["/^\\p{Any}?X/8"],-     Just [" 0: X"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Nothing,-     Nothing]-,-testRegex "^\\P{Any}?X" [ERROR]-    ["XYZ",-     "** Failers",-     "AXYZ",-     "\\x{1234}XYZ ",-     "ABXYZ   "]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{Any}+X" [ERROR]-    ["AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "** Failers",-     "XYZ"]-    [Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Just [" 0: A\\x{1234}X"],-     Nothing,-     Nothing]-,-testRegex "^\\P{Any}+X" [ERROR]-    ["** Failers",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "XYZ"]-    [Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{Any}*X" [ERROR]-    ["XYZ",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "** Failers"]-    [Just [" 0: X"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Just [" 0: A\\x{1234}X"],-     Nothing]-,-testRegex "^\\P{Any}*X" [ERROR]-    ["XYZ",-     "** Failers",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ"]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{Any}]X" [ERROR]-    ["AXYZ",-     "\\x{1234}XYZ ",-     "** Failers",-     "X  ",-     "",-     "/^[\\P{Any}]X/8",-     "** Failers",-     "AX",-     "",-     "/^[\\p{Any}]?X/8",-     "XYZ",-     "AXYZ",-     "\\x{1234}XYZ ",-     "** Failers",-     "ABXYZ   "]-    [Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Nothing,-     Nothing,-     Just ["/^[\\P{Any}]X/8"],-     Nothing,-     Nothing,-     Just ["/^[\\p{Any}]?X/8"],-     Just [" 0: X"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Nothing,-     Nothing]-,-testRegex "^[\\P{Any}]?X" [ERROR]-    ["XYZ",-     "** Failers",-     "AXYZ",-     "\\x{1234}XYZ ",-     "ABXYZ   "]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{Any}]+X" [ERROR]-    ["AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "** Failers",-     "XYZ"]-    [Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Just [" 0: A\\x{1234}X"],-     Nothing,-     Nothing]-,-testRegex "^[\\P{Any}]+X" [ERROR]-    ["** Failers",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "XYZ"]-    [Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{Any}]*X" [ERROR]-    ["XYZ",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "** Failers"]-    [Just [" 0: X"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Just [" 0: A\\x{1234}X"],-     Nothing]-,-testRegex "^[\\P{Any}]*X" [ERROR]-    ["XYZ",-     "** Failers",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ"]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{Any}{3,5}?" [ERROR]-    ["abcdefgh",-     "\\x{1234}\\n\\r\\x{3456}xyz "]-    [Just [" 0: abc"],-     Just [" 0: \\x{1234}\\x{0a}\\x{0d}"]]-,-testRegex "^\\p{Any}{3,5}" [ERROR]-    ["abcdefgh",-     "\\x{1234}\\n\\r\\x{3456}xyz "]-    [Just [" 0: abcde"],-     Just [" 0: \\x{1234}\\x{0a}\\x{0d}\\x{3456}x"]]-,-testRegex "^\\P{Any}{3,5}?" [ERROR]-    ["** Failers",-     "abcdefgh",-     "\\x{1234}\\n\\r\\x{3456}xyz "]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{L&}X" [ERROR]-    ["AXY",-     "aXY",-     "\\x{1c5}XY",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: \\x{1c5}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{L&}]X" [ERROR]-    ["AXY",-     "aXY",-     "\\x{1c5}XY",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: \\x{1c5}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{L&}+X" [ERROR]-    ["AXY",-     "aXY",-     "AbcdeXyz ",-     "\\x{1c5}AbXY",-     "abcDEXypqreXlmn ",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: AbcdeX"],-     Just [" 0: \\x{1c5}AbX"],-     Just [" 0: abcDEXypqreX"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{L&}]+X" [ERROR]-    ["AXY",-     "aXY",-     "AbcdeXyz ",-     "\\x{1c5}AbXY",-     "abcDEXypqreXlmn ",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: AbcdeX"],-     Just [" 0: \\x{1c5}AbX"],-     Just [" 0: abcDEXypqreX"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{L&}+?X" [ERROR]-    ["AXY",-     "aXY",-     "AbcdeXyz ",-     "\\x{1c5}AbXY",-     "abcDEXypqreXlmn ",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: AbcdeX"],-     Just [" 0: \\x{1c5}AbX"],-     Just [" 0: abcDEX"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{L&}]+?X" [ERROR]-    ["AXY",-     "aXY",-     "AbcdeXyz ",-     "\\x{1c5}AbXY",-     "abcDEXypqreXlmn ",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: AbcdeX"],-     Just [" 0: \\x{1c5}AbX"],-     Just [" 0: abcDEX"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\P{L&}X" [ERROR]-    ["!XY",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "** Failers",-     "\\x{1c5}XY",-     "AXY      "]-    [Just [" 0: !X"],-     Just [" 0: \\x{1bb}X"],-     Just [" 0: \\x{2b0}X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\P{L&}]X" [ERROR]-    ["!XY",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "** Failers",-     "\\x{1c5}XY",-     "AXY      "]-    [Just [" 0: !X"],-     Just [" 0: \\x{1bb}X"],-     Just [" 0: \\x{2b0}X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(\\p{Z}[^\\p{C}\\p{Z}]+)*$" []-    ["\\xa0!"]-    [Just [" 0: \\xa0!"],-     Just [" 1: \\xa0!"]]-,-testRegex "^[\\pL](abc)(?1)" []-    ["AabcabcYZ    "]-    [Just [" 0: Aabcabc"],-     Just [" 1: abc"]]-,-testRegex "([\\pL]=(abc))*X" []-    ["L=abcX"]-    [Just [" 0: L=abcX"],-     Just [" 1: L=abc"],-     Just [" 2: abc"]]-,-testRegex "ERROR" []-    ["will match it only with UCP support, because without that it has no notion",-     "of case for anything other than the ASCII letters. / "]-    [Just ["will match it only with UCP support, because without that it has no notion"],-     Just ["of case for anything other than the ASCII letters. / "]]-,-testRegex "((?i)[\\x{c0}])" [ERROR]-    ["\\x{c0}",-     "\\x{e0} "]-    [Just [" 0: \\x{c0}"],-     Just [" 1: \\x{c0}"],-     Just [" 0: \\x{e0}"],-     Just [" 1: \\x{e0}"]]-,-testRegex "(?i:[\\x{c0}])" [ERROR]-    ["\\x{c0}",-     "\\x{e0} ",-     "",-     "/^\\p{Balinese}\\p{Cuneiform}\\p{Nko}\\p{Phags_Pa}\\p{Phoenician}/8",-     "\\x{1b00}\\x{12000}\\x{7c0}\\x{a840}\\x{10900}"]-    [Just [" 0: \\x{c0}"],-     Just [" 0: \\x{e0}"],-     Just ["/^\\p{Balinese}\\p{Cuneiform}\\p{Nko}\\p{Phags_Pa}\\p{Phoenician}/8"],-     Just [" 0: \\x{1b00}\\x{12000}\\x{7c0}\\x{a840}\\x{10900}"]]-,-testRegex "ERROR" []-    ["same character differ. The first went wrong with heap fram storage; the 2nd",-     "was broken in all cases./"]-    [Just ["same character differ. The first went wrong with heap fram storage; the 2nd"],-     Just ["was broken in all cases./"]]-,-testRegex "^\\x{023a}+?(\\x{0130}+)" [caseless]-    ["\\x{023a}\\x{2c65}\\x{0130}",-     "",-     "/^\\x{023a}+([^X])/8i",-     "\\x{023a}\\x{2c65}X"]-    [Just [" 0: \\x{23a}\\x{2c65}\\x{130}"],-     Just [" 1: \\x{130}"],-     Just ["/^\\x{023a}+([^X])/8i"],-     Just [" 0: \\x{23a}\\x{2c65}"],-     Just [" 1: \\x{2c65}"]]-,-testRegex "Check property support in non-UTF-8 mode" []-    ["",-     "/\\p{L}{4}/",-     "123abcdefg",-     "123abc\\xc4\\xc5zz"]-    [Just ["/\\p{L}{4}/"],-     Just [" 0: abcd"],-     Just [" 0: abc\\xc4"]]-,-testRegex "\\X{1,3}\\d" []-    ["\\x8aBCD",-     "",-     "/\\X?\\d/",-     "\\x8aBCD "]-    [Nothing,-     Just ["/\\X?\\d/"],-     Nothing]-,-testRegex "\\P{L}?\\d" []-    ["\\x8aBCD "]-    [Nothing]-,-testRegex "[\\PPP\\x8a]{1,}\\x80" []-    ["A\\x80"]-    [Just [" 0: A\\x80"]]-,-testRegex "(?:[\\PPa*]*){8,}" []-    []-    []-,-testRegex "[\\P{Any}]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "[\\P{Any}\\E]" [ERROR]-    []-    [Just ["------------------------------------------------------------------"],-     Just ["------------------------------------------------------------------"]]-,-testRegex "(\\P{Yi}+\\277)" []-    []-    []-,-testRegex "(\\P{Yi}+\\277)?" []-    []-    []-,-testRegex "(?<=\\P{Yi}{3}A)X" []-    []-    []-,-testRegex "\\p{Yi}+(\\P{Yi}+)(?1)" []-    []-    []-,-testRegex "(\\P{Yi}{2}\\277)?" []-    []-    []-,-testRegex "[\\P{Yi}A]" []-    []-    []-,-testRegex "[\\P{Yi}\\P{Yi}\\P{Yi}A]" []-    []-    []-,-testRegex "[^\\P{Yi}A]" []-    []-    []-,-testRegex "[^\\P{Yi}\\P{Yi}\\P{Yi}A]" []-    []-    []-,-testRegex "(\\P{Yi}*\\277)*" []-    []-    []-,-testRegex "(\\P{Yi}*?\\277)*" []-    []-    []-,-testRegex "(\\p{Yi}*+\\277)*" []-    []-    []-,-testRegex "(\\P{Yi}?\\277)*" []-    []-    []-,-testRegex "(\\P{Yi}??\\277)*" []-    []-    []-,-testRegex "(\\p{Yi}?+\\277)*" []-    []-    []-,-testRegex "(\\P{Yi}{0,3}\\277)*" []-    []-    []-,-testRegex "(\\P{Yi}{0,3}?\\277)*" []-    []-    []-,-testRegex "(\\p{Yi}{0,3}+\\277)*" []-    []-    []-,-testRegex " End of testinput6 " []-    []-    []
− tests/testdata/regex7.tests
@@ -1,8167 +0,0 @@-testRegex "abc" []-    ["abc",-     "",-     "/ab*c/",-     "abc",-     "abbbbc",-     "ac",-     "",-     "/ab+c/",-     "abc",-     "abbbbbbc",-     "*** Failers ",-     "ac",-     "ab",-     "",-     "/a*/",-     "a",-     "aaaaaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\F ",-     "",-     "/(a|abcd|african)/",-     "a",-     "abcd",-     "african",-     "",-     "/^abc/",-     "abcdef",-     "*** Failers",-     "xyzabc",-     "xyz\\nabc    ",-     "",-     "/^abc/m",-     "abcdef",-     "xyz\\nabc    ",-     "*** Failers",-     "xyzabc",-     "",-     "/\\Aabc/",-     "abcdef",-     "*** Failers",-     "xyzabc",-     "xyz\\nabc    ",-     "",-     "/\\Aabc/m",-     "abcdef",-     "*** Failers",-     "xyzabc",-     "xyz\\nabc    ",-     "",-     "/\\Gabc/",-     "abcdef",-     "xyzabc\\>3",-     "*** Failers",-     "xyzabc    ",-     "xyzabc\\>2 ",-     "",-     "/x\\dy\\Dz/",-     "x9yzz",-     "x0y+z",-     "*** Failers",-     "xyz",-     "xxy0z     ",-     "",-     "/x\\sy\\Sz/",-     "x yzz",-     "x y+z",-     "*** Failers",-     "xyz",-     "xxyyz",-     "",-     "/x\\wy\\Wz/",-     "xxy+z",-     "*** Failers",-     "xxy0z",-     "x+y+z         ",-     "",-     "/x.y/",-     "x+y",-     "x-y",-     "*** Failers",-     "x\\ny",-     "",-     "/x.y/s",-     "x+y",-     "x-y",-     "x\\ny"]-    [Just [" 0: abc"],-     Just ["/ab*c/"],-     Just [" 0: abc"],-     Just [" 0: abbbbc"],-     Just [" 0: ac"],-     Just ["/ab+c/"],-     Just [" 0: abc"],-     Just [" 0: abbbbbbc"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/a*/"],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aaaaaaaaaaaaaaaaa"],-     Just [" 1: aaaaaaaaaaaaaaaa"],-     Just [" 2: aaaaaaaaaaaaaaa"],-     Just [" 3: aaaaaaaaaaaaaa"],-     Just [" 4: aaaaaaaaaaaaa"],-     Just [" 5: aaaaaaaaaaaa"],-     Just [" 6: aaaaaaaaaaa"],-     Just [" 7: aaaaaaaaaa"],-     Just [" 8: aaaaaaaaa"],-     Just [" 9: aaaaaaaa"],-     Just ["10: aaaaaaa"],-     Just ["11: aaaaaa"],-     Just ["12: aaaaa"],-     Just ["13: aaaa"],-     Just ["14: aaa"],-     Just ["15: aa"],-     Just ["16: a"],-     Just ["17: "],-     Just ["Matched, but too many subsidiary matches"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 8: aaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 9: aaaaaaaaaaaaaaaaaaaaa"],-     Just ["10: aaaaaaaaaaaaaaaaaaaa"],-     Just ["11: aaaaaaaaaaaaaaaaaaa"],-     Just ["12: aaaaaaaaaaaaaaaaaa"],-     Just ["13: aaaaaaaaaaaaaaaaa"],-     Just ["14: aaaaaaaaaaaaaaaa"],-     Just ["15: aaaaaaaaaaaaaaa"],-     Just ["16: aaaaaaaaaaaaaa"],-     Just ["17: aaaaaaaaaaaaa"],-     Just ["18: aaaaaaaaaaaa"],-     Just ["19: aaaaaaaaaaa"],-     Just ["20: aaaaaaaaaa"],-     Just ["21: aaaaaaaaa"],-     Just [" 0: "],-     Just ["/(a|abcd|african)/"],-     Just [" 0: a"],-     Just [" 0: abcd"],-     Just [" 1: a"],-     Just [" 0: african"],-     Just [" 1: a"],-     Just ["/^abc/"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^abc/m"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Just ["/\\Aabc/"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/\\Aabc/m"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/\\Gabc/"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/x\\dy\\Dz/"],-     Just [" 0: x9yzz"],-     Just [" 0: x0y+z"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/x\\sy\\Sz/"],-     Just [" 0: x yzz"],-     Just [" 0: x y+z"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/x\\wy\\Wz/"],-     Just [" 0: xxy+z"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/x.y/"],-     Just [" 0: x+y"],-     Just [" 0: x-y"],-     Nothing,-     Nothing,-     Just ["/x.y/s"],-     Just [" 0: x+y"],-     Just [" 0: x-y"],-     Just [" 0: x\\x0ay"]]-,-testRegex "(a.b(?s)c.d|x.y)p.q" []-    ["a+bc+dp+q",-     "a+bc\\ndp+q",-     "x\\nyp+q ",-     "*** Failers ",-     "a\\nbc\\ndp+q",-     "a+bc\\ndp\\nq",-     "x\\nyp\\nq "]-    [Just [" 0: a+bc+dp+q"],-     Just [" 0: a+bc\\x0adp+q"],-     Just [" 0: x\\x0ayp+q"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\d\\z" []-    ["ba0",-     "*** Failers",-     "ba0\\n",-     "ba0\\ncd   "]-    [Just [" 0: a0"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\d\\z" [ERROR]-    ["ba0",-     "*** Failers",-     "ba0\\n",-     "ba0\\ncd   "]-    [Just [" 0: a0"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\d\\Z" []-    ["ba0",-     "ba0\\n",-     "*** Failers",-     "ba0\\ncd   "]-    [Just [" 0: a0"],-     Just [" 0: a0"],-     Nothing,-     Nothing]-,-testRegex "a\\d\\Z" [ERROR]-    ["ba0",-     "ba0\\n",-     "*** Failers",-     "ba0\\ncd   "]-    [Just [" 0: a0"],-     Just [" 0: a0"],-     Nothing,-     Nothing]-,-testRegex "a\\d$" []-    ["ba0",-     "ba0\\n",-     "*** Failers",-     "ba0\\ncd   "]-    [Just [" 0: a0"],-     Just [" 0: a0"],-     Nothing,-     Nothing]-,-testRegex "a\\d$" [ERROR]-    ["ba0",-     "ba0\\n",-     "ba0\\ncd   ",-     "*** Failers"]-    [Just [" 0: a0"],-     Just [" 0: a0"],-     Just [" 0: a0"],-     Nothing]-,-testRegex "abc" [caseless]-    ["abc",-     "aBc",-     "ABC",-     "",-     "/[^a]/",-     "abcd",-     "",-     "/ab?\\w/",-     "abz",-     "abbz",-     "azz  "]-    [Just [" 0: abc"],-     Just [" 0: aBc"],-     Just [" 0: ABC"],-     Just ["/[^a]/"],-     Just [" 0: b"],-     Just ["/ab?\\w/"],-     Just [" 0: abz"],-     Just [" 1: ab"],-     Just [" 0: abb"],-     Just [" 1: ab"],-     Just [" 0: az"]]-,-testRegex "x{0,3}yz" []-    ["ayzq",-     "axyzq",-     "axxyz",-     "axxxyzq",-     "axxxxyzq",-     "*** Failers",-     "ax",-     "axx     ",-     "",-     "/x{3}yz/",-     "axxxyzq",-     "axxxxyzq",-     "*** Failers",-     "ax",-     "axx     ",-     "ayzq",-     "axyzq",-     "axxyz",-     "",-     "/x{2,3}yz/",-     "axxyz",-     "axxxyzq",-     "axxxxyzq",-     "*** Failers",-     "ax",-     "axx     ",-     "ayzq",-     "axyzq",-     "",-     "/[^a]+/",-     "bac",-     "bcdefax",-     "*** Failers",-     "aaaaa   "]-    [Just [" 0: yz"],-     Just [" 0: xyz"],-     Just [" 0: xxyz"],-     Just [" 0: xxxyz"],-     Just [" 0: xxxyz"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/x{3}yz/"],-     Just [" 0: xxxyz"],-     Just [" 0: xxxyz"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/x{2,3}yz/"],-     Just [" 0: xxyz"],-     Just [" 0: xxxyz"],-     Just [" 0: xxxyz"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/[^a]+/"],-     Just [" 0: b"],-     Just [" 0: bcdef"],-     Just [" 1: bcde"],-     Just [" 2: bcd"],-     Just [" 3: bc"],-     Just [" 4: b"],-     Just [" 0: *** F"],-     Just [" 1: *** "],-     Just [" 2: ***"],-     Just [" 3: **"],-     Just [" 4: *"],-     Nothing]-,-testRegex "[^a]*" []-    ["bac",-     "bcdefax",-     "*** Failers",-     "aaaaa   ",-     "",-     "/[^a]{3,5}/",-     "xyz",-     "awxyza",-     "abcdefa",-     "abcdefghijk",-     "*** Failers",-     "axya",-     "axa",-     "aaaaa         "]-    [Just [" 0: b"],-     Just [" 1: "],-     Just [" 0: bcdef"],-     Just [" 1: bcde"],-     Just [" 2: bcd"],-     Just [" 3: bc"],-     Just [" 4: b"],-     Just [" 5: "],-     Just [" 0: *** F"],-     Just [" 1: *** "],-     Just [" 2: ***"],-     Just [" 3: **"],-     Just [" 4: *"],-     Just [" 5: "],-     Just [" 0: "],-     Just ["/[^a]{3,5}/"],-     Just [" 0: xyz"],-     Just [" 0: wxyz"],-     Just [" 1: wxy"],-     Just [" 0: bcdef"],-     Just [" 1: bcde"],-     Just [" 2: bcd"],-     Just [" 0: bcdef"],-     Just [" 1: bcde"],-     Just [" 2: bcd"],-     Just [" 0: *** F"],-     Just [" 1: *** "],-     Just [" 2: ***"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\d*" []-    ["1234b567",-     "xyz",-     "",-     "/\\D*/",-     "a1234b567",-     "xyz",-     "",-     "/\\d+/",-     "ab1234c56",-     "*** Failers",-     "xyz",-     "",-     "/\\D+/",-     "ab123c56",-     "*** Failers",-     "789",-     "",-     "/\\d?A/",-     "045ABC",-     "ABC",-     "*** Failers",-     "XYZ",-     "",-     "/\\D?A/",-     "ABC",-     "BAC",-     "9ABC             ",-     "*** Failers"]-    [Just [" 0: 1234"],-     Just [" 1: 123"],-     Just [" 2: 12"],-     Just [" 3: 1"],-     Just [" 4: "],-     Just [" 0: "],-     Just ["/\\D*/"],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: xyz"],-     Just [" 1: xy"],-     Just [" 2: x"],-     Just [" 3: "],-     Just ["/\\d+/"],-     Just [" 0: 1234"],-     Just [" 1: 123"],-     Just [" 2: 12"],-     Just [" 3: 1"],-     Nothing,-     Nothing,-     Just ["/\\D+/"],-     Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 0: *** Failers"],-     Just [" 1: *** Failer"],-     Just [" 2: *** Faile"],-     Just [" 3: *** Fail"],-     Just [" 4: *** Fai"],-     Just [" 5: *** Fa"],-     Just [" 6: *** F"],-     Just [" 7: *** "],-     Just [" 8: ***"],-     Just [" 9: **"],-     Just ["10: *"],-     Nothing,-     Just ["/\\d?A/"],-     Just [" 0: 5A"],-     Just [" 0: A"],-     Nothing,-     Nothing,-     Just ["/\\D?A/"],-     Just [" 0: A"],-     Just [" 0: BA"],-     Just [" 0: A"],-     Nothing]-,-testRegex "a+" []-    ["aaaa"]-    [Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"]]-,-testRegex "^.*xyz" []-    ["xyz",-     "ggggggggxyz",-     "",-     "/^.+xyz/",-     "abcdxyz",-     "axyz",-     "*** Failers",-     "xyz",-     "",-     "/^.?xyz/",-     "xyz",-     "cxyz       "]-    [Just [" 0: xyz"],-     Just [" 0: ggggggggxyz"],-     Just ["/^.+xyz/"],-     Just [" 0: abcdxyz"],-     Just [" 0: axyz"],-     Nothing,-     Nothing,-     Just ["/^.?xyz/"],-     Just [" 0: xyz"],-     Just [" 0: cxyz"]]-,-testRegex "^\\d{2,3}X" []-    ["12X",-     "123X",-     "*** Failers",-     "X",-     "1X",-     "1234X     "]-    [Just [" 0: 12X"],-     Just [" 0: 123X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[abcd]\\d" []-    ["a45",-     "b93",-     "c99z",-     "d04",-     "*** Failers",-     "e45",-     "abcd      ",-     "abcd1234",-     "1234  "]-    [Just [" 0: a4"],-     Just [" 0: b9"],-     Just [" 0: c9"],-     Just [" 0: d0"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[abcd]*\\d" []-    ["a45",-     "b93",-     "c99z",-     "d04",-     "abcd1234",-     "1234  ",-     "*** Failers",-     "e45",-     "abcd      "]-    [Just [" 0: a4"],-     Just [" 0: b9"],-     Just [" 0: c9"],-     Just [" 0: d0"],-     Just [" 0: abcd1"],-     Just [" 0: 1"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[abcd]+\\d" []-    ["a45",-     "b93",-     "c99z",-     "d04",-     "abcd1234",-     "*** Failers",-     "1234  ",-     "e45",-     "abcd      "]-    [Just [" 0: a4"],-     Just [" 0: b9"],-     Just [" 0: c9"],-     Just [" 0: d0"],-     Just [" 0: abcd1"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^a+X" []-    ["aX",-     "aaX "]-    [Just [" 0: aX"],-     Just [" 0: aaX"]]-,-testRegex "^[abcd]?\\d" []-    ["a45",-     "b93",-     "c99z",-     "d04",-     "1234  ",-     "*** Failers",-     "abcd1234",-     "e45"]-    [Just [" 0: a4"],-     Just [" 0: b9"],-     Just [" 0: c9"],-     Just [" 0: d0"],-     Just [" 0: 1"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[abcd]{2,3}\\d" []-    ["ab45",-     "bcd93",-     "*** Failers",-     "1234 ",-     "a36 ",-     "abcd1234",-     "ee45"]-    [Just [" 0: ab4"],-     Just [" 0: bcd9"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(abc)*\\d" []-    ["abc45",-     "abcabcabc45",-     "42xyz ",-     "*** Failers"]-    [Just [" 0: abc4"],-     Just [" 0: abcabcabc4"],-     Just [" 0: 4"],-     Nothing]-,-testRegex "^(abc)+\\d" []-    ["abc45",-     "abcabcabc45",-     "*** Failers",-     "42xyz "]-    [Just [" 0: abc4"],-     Just [" 0: abcabcabc4"],-     Nothing,-     Nothing]-,-testRegex "^(abc)?\\d" []-    ["abc45",-     "42xyz ",-     "*** Failers",-     "abcabcabc45"]-    [Just [" 0: abc4"],-     Just [" 0: 4"],-     Nothing,-     Nothing]-,-testRegex "^(abc){2,3}\\d" []-    ["abcabc45",-     "abcabcabc45",-     "*** Failers",-     "abcabcabcabc45",-     "abc45",-     "42xyz "]-    [Just [" 0: abcabc4"],-     Just [" 0: abcabcabc4"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "1(abc|xyz)2(?1)3" []-    ["1abc2abc3456",-     "1abc2xyz3456 "]-    [Just [" 0: 1abc2abc3"],-     Just [" 0: 1abc2xyz3"]]-,-testRegex "^(a*\\w|ab)=(a*\\w|ab)" []-    ["ab=ab"]-    [Just [" 0: ab=ab"],-     Just [" 1: ab=a"]]-,-testRegex "^(a*\\w|ab)=(?1)" []-    ["ab=ab"]-    [Just [" 0: ab=ab"]]-,-testRegex "^([^()]|\\((?1)*\\))*$" []-    ["abc",-     "a(b)c",-     "a(b(c))d  ",-     "*** Failers)",-     "a(b(c)d  "]-    [Just [" 0: abc"],-     Just [" 0: a(b)c"],-     Just [" 0: a(b(c))d"],-     Nothing,-     Nothing]-,-testRegex "^>abc>([^()]|\\((?1)*\\))*<xyz<$" []-    [">abc>123<xyz<",-     ">abc>1(2)3<xyz<",-     ">abc>(1(2)3)<xyz<"]-    [Just [" 0: >abc>123<xyz<"],-     Just [" 0: >abc>1(2)3<xyz<"],-     Just [" 0: >abc>(1(2)3)<xyz<"]]-,-testRegex "^(?>a*)\\d" []-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876",-     "*** Failers ",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9"],-     Nothing,-     Nothing]-,-testRegex "< (?: (?(R) \\d++  | [^<>]*+) | (?R)) * >" [ERROR]-    ["<>",-     "<abcd>",-     "<abc <123> hij>",-     "<abc <def> hij>",-     "<abc<>def> ",-     "<abc<>      ",-     "*** Failers",-     "<abc"]-    [Just [" 0: <>"],-     Just [" 0: <abcd>"],-     Just [" 0: <abc <123> hij>"],-     Just [" 0: <def>"],-     Just [" 0: <abc<>def>"],-     Just [" 0: <>"],-     Nothing,-     Nothing]-,-testRegex "^(?(?=abc)\\w{3}:|\\d\\d)$" [ERROR]-    ["abc:                          ",-     "12                             ",-     "*** Failers                     ",-     "123                       ",-     "xyz                        ",-     "",-     "/^(?(?!abc)\\d\\d|\\w{3}:)$/      ",-     "abc:                        ",-     "12         ",-     "*** Failers",-     "123",-     "xyz    "]-    [Just [" 0: abc:"],-     Just [" 0: 12"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^(?(?!abc)\\d\\d|\\w{3}:)$/      "],-     Just [" 0: abc:"],-     Just [" 0: 12"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(?=abc)\\w{5}:$" [ERROR]-    ["abcde:                          ",-     "*** Failers                     ",-     "abc.. ",-     "123                       ",-     "vwxyz                        ",-     "",-     "/^(?!abc)\\d\\d$/      ",-     "12         ",-     "*** Failers",-     "abcde:",-     "abc..  ",-     "123",-     "vwxyz    "]-    [Just [" 0: abcde:"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^(?!abc)\\d\\d$/      "],-     Just [" 0: 12"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<=abc|xy)123" []-    ["abc12345",-     "wxy123z",-     "*** Failers",-     "123abc"]-    [Just [" 0: 123"],-     Just [" 0: 123"],-     Nothing,-     Nothing]-,-testRegex "(?<!abc|xy)123" []-    ["123abc",-     "mno123456 ",-     "*** Failers",-     "abc12345",-     "wxy123z"]-    [Just [" 0: 123"],-     Just [" 0: 123"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "abc(?C1)xyz" []-    ["abcxyz",-     "123abcxyz999 "]-    [Just ["--->abcxyz"],-     Just [" 0: abcxyz"],-     Just ["--->123abcxyz999"],-     Just [" 0: abcxyz"]]-,-testRegex "(ab|cd){3,4}" [ERROR]-    ["ababab",-     "abcdabcd",-     "abcdcdcdcdcd  "]-    [Just ["--->ababab"],-     Just [" +0 ^          (ab|cd){3,4}"],-     Just [" +1 ^          a"],-     Just [" +4 ^          c"],-     Just [" +2 ^^         b"],-     Just [" +3 ^ ^        |"],-     Just [" +1 ^ ^        a"],-     Just [" +4 ^ ^        c"],-     Just [" +2 ^  ^       b"],-     Just [" +3 ^   ^      |"],-     Just [" +1 ^   ^      a"],-     Just [" +4 ^   ^      c"],-     Just [" +2 ^    ^     b"],-     Just [" +3 ^     ^    |"],-     Just ["+12 ^     ^    "],-     Just [" +1 ^     ^    a"],-     Just [" +4 ^     ^    c"],-     Just [" 0: ababab"],-     Just ["--->abcdabcd"],-     Just [" +0 ^            (ab|cd){3,4}"],-     Just [" +1 ^            a"],-     Just [" +4 ^            c"],-     Just [" +2 ^^           b"],-     Just [" +3 ^ ^          |"],-     Just [" +1 ^ ^          a"],-     Just [" +4 ^ ^          c"],-     Just [" +5 ^  ^         d"],-     Just [" +6 ^   ^        )"],-     Just [" +1 ^   ^        a"],-     Just [" +4 ^   ^        c"],-     Just [" +2 ^    ^       b"],-     Just [" +3 ^     ^      |"],-     Just ["+12 ^     ^      "],-     Just [" +1 ^     ^      a"],-     Just [" +4 ^     ^      c"],-     Just [" +5 ^      ^     d"],-     Just [" +6 ^       ^    )"],-     Just ["+12 ^       ^    "],-     Just [" 0: abcdabcd"],-     Just [" 1: abcdab"],-     Just ["--->abcdcdcdcdcd"],-     Just [" +0 ^                (ab|cd){3,4}"],-     Just [" +1 ^                a"],-     Just [" +4 ^                c"],-     Just [" +2 ^^               b"],-     Just [" +3 ^ ^              |"],-     Just [" +1 ^ ^              a"],-     Just [" +4 ^ ^              c"],-     Just [" +5 ^  ^             d"],-     Just [" +6 ^   ^            )"],-     Just [" +1 ^   ^            a"],-     Just [" +4 ^   ^            c"],-     Just [" +5 ^    ^           d"],-     Just [" +6 ^     ^          )"],-     Just ["+12 ^     ^          "],-     Just [" +1 ^     ^          a"],-     Just [" +4 ^     ^          c"],-     Just [" +5 ^      ^         d"],-     Just [" +6 ^       ^        )"],-     Just ["+12 ^       ^        "],-     Just [" 0: abcdcdcd"],-     Just [" 1: abcdcd"]]-,-testRegex "^abc" []-    ["abcdef",-     "*** Failers",-     "abcdef\\B  "]-    [Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "^(a*|xyz)" []-    ["bcd",-     "aaabcd",-     "xyz",-     "xyz\\N  ",-     "*** Failers",-     "bcd\\N   ",-     "",-     "/xyz$/",-     "xyz",-     "xyz\\n",-     "*** Failers",-     "xyz\\Z",-     "xyz\\n\\Z    ",-     "",-     "/xyz$/m",-     "xyz",-     "xyz\\n ",-     "abcxyz\\npqr ",-     "abcxyz\\npqr\\Z ",-     "xyz\\n\\Z    ",-     "*** Failers",-     "xyz\\Z"]-    [Just [" 0: "],-     Just [" 0: aaa"],-     Just [" 1: aa"],-     Just [" 2: a"],-     Just [" 3: "],-     Just [" 0: xyz"],-     Just [" 1: "],-     Just [" 0: xyz"],-     Just [" 0: "],-     Nothing,-     Just ["/xyz$/"],-     Just [" 0: xyz"],-     Just [" 0: xyz"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/xyz$/m"],-     Just [" 0: xyz"],-     Just [" 0: xyz"],-     Just [" 0: xyz"],-     Just [" 0: xyz"],-     Just [" 0: xyz"],-     Nothing,-     Nothing]-,-testRegex "\\Gabc" []-    ["abcdef",-     "defabcxyz\\>3 ",-     "*** Failers ",-     "defabcxyz"]-    [Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "^abcdef" []-    ["ab\\P",-     "abcde\\P",-     "abcdef\\P",-     "*** Failers",-     "abx\\P    "]-    [Just ["Partial match: ab"],-     Just ["Partial match: abcde"],-     Just [" 0: abcdef"],-     Nothing,-     Nothing]-,-testRegex "^a{2,4}\\d+z" []-    ["a\\P",-     "aa\\P",-     "aa2\\P ",-     "aaa\\P",-     "aaa23\\P ",-     "aaaa12345\\P",-     "aa0z\\P",-     "aaaa4444444444444z\\P ",-     "*** Failers",-     "az\\P ",-     "aaaaa\\P ",-     "a56\\P "]-    [Just ["Partial match: a"],-     Just ["Partial match: aa"],-     Just ["Partial match: aa2"],-     Just ["Partial match: aaa"],-     Just ["Partial match: aaa23"],-     Just ["Partial match: aaaa12345"],-     Just [" 0: aa0z"],-     Just [" 0: aaaa4444444444444z"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^abcdef" []-    ["abc\\P",-     "def\\R ",-     "",-     "/(?<=foo)bar/",-     "xyzfo\\P ",-     "foob\\P\\>2 ",-     "foobar...\\R\\P\\>4 ",-     "xyzfo\\P",-     "foobar\\>2  ",-     "*** Failers",-     "xyzfo\\P",-     "obar\\R   "]-    [Just ["Partial match: abc"],-     Just [" 0: def"],-     Just ["/(?<=foo)bar/"],-     Nothing,-     Just ["Partial match: b"],-     Just [" 0: ar"],-     Nothing,-     Just [" 0: bar"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(ab*(cd|ef))+X" []-    ["adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\\P\\Z",-     "lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\\P\\B\\Z",-     "cdabbbbbbbb\\P\\R\\B\\Z",-     "efabbbbbbbbbbbbbbbb\\P\\R\\B\\Z",-     "bbbbbbbbbbbbcdXyasdfadf\\P\\R\\B\\Z    "]-    [Nothing,-     Just ["Partial match: abbbbbbcdaefabbbbbbbefa"],-     Just ["Partial match: cdabbbbbbbb"],-     Just ["Partial match: efabbbbbbbbbbbbbbbb"],-     Just [" 0: bbbbbbbbbbbbcdX"]]-,-testRegex "(a|b)" [ERROR]-    ["<testsavedregex",-     "abc",-     "** Failers",-     "def  ",-     "",-     "/the quick brown fox/",-     "the quick brown fox",-     "The quick brown FOX",-     "What do you know about the quick brown fox?",-     "What do you know about THE QUICK BROWN FOX?"]-    [Just ["Compiled regex written to testsavedregex"],-     Just ["Study data written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex (byte-inverted) loaded from testsavedregex"],-     Just ["Study data loaded from testsavedregex"],-     Just [" 0: a"],-     Just [" 0: a"],-     Nothing,-     Just ["/the quick brown fox/"],-     Just [" 0: the quick brown fox"],-     Nothing,-     Just [" 0: the quick brown fox"],-     Nothing]-,-testRegex "The quick brown fox" [caseless]-    ["the quick brown fox",-     "The quick brown FOX",-     "What do you know about the quick brown fox?",-     "What do you know about THE QUICK BROWN FOX?"]-    [Just [" 0: the quick brown fox"],-     Just [" 0: The quick brown FOX"],-     Just [" 0: the quick brown fox"],-     Just [" 0: THE QUICK BROWN FOX"]]-,-testRegex "abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\$\\\\\\?caxyz" []-    ["abcd\\t\\n\\r\\f\\a\\e9;\\$\\\\?caxyz"]-    [Just [" 0: abcd\\x09\\x0a\\x0d\\x0c\\x07\\x1b9;$\\?caxyz"]]-,-testRegex "a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz" []-    ["abxyzpqrrrabbxyyyypqAzz",-     "abxyzpqrrrabbxyyyypqAzz",-     "aabxyzpqrrrabbxyyyypqAzz",-     "aaabxyzpqrrrabbxyyyypqAzz",-     "aaaabxyzpqrrrabbxyyyypqAzz",-     "abcxyzpqrrrabbxyyyypqAzz",-     "aabcxyzpqrrrabbxyyyypqAzz",-     "aaabcxyzpqrrrabbxyyyypAzz",-     "aaabcxyzpqrrrabbxyyyypqAzz",-     "aaabcxyzpqrrrabbxyyyypqqAzz",-     "aaabcxyzpqrrrabbxyyyypqqqAzz",-     "aaabcxyzpqrrrabbxyyyypqqqqAzz",-     "aaabcxyzpqrrrabbxyyyypqqqqqAzz",-     "aaabcxyzpqrrrabbxyyyypqqqqqqAzz",-     "aaaabcxyzpqrrrabbxyyyypqAzz",-     "abxyzzpqrrrabbxyyyypqAzz",-     "aabxyzzzpqrrrabbxyyyypqAzz",-     "aaabxyzzzzpqrrrabbxyyyypqAzz",-     "aaaabxyzzzzpqrrrabbxyyyypqAzz",-     "abcxyzzpqrrrabbxyyyypqAzz",-     "aabcxyzzzpqrrrabbxyyyypqAzz",-     "aaabcxyzzzzpqrrrabbxyyyypqAzz",-     "aaaabcxyzzzzpqrrrabbxyyyypqAzz",-     "aaaabcxyzzzzpqrrrabbbxyyyypqAzz",-     "aaaabcxyzzzzpqrrrabbbxyyyyypqAzz",-     "aaabcxyzpqrrrabbxyyyypABzz",-     "aaabcxyzpqrrrabbxyyyypABBzz",-     ">>>aaabxyzpqrrrabbxyyyypqAzz",-     ">aaaabxyzpqrrrabbxyyyypqAzz",-     ">>>>abcxyzpqrrrabbxyyyypqAzz",-     "*** Failers",-     "abxyzpqrrabbxyyyypqAzz",-     "abxyzpqrrrrabbxyyyypqAzz",-     "abxyzpqrrrabxyyyypqAzz",-     "aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz",-     "aaaabcxyzzzzpqrrrabbbxyyypqAzz",-     "aaabcxyzpqrrrabbxyyyypqqqqqqqAzz"]-    [Just [" 0: abxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: abxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: aabxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaabxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaaabxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: abcxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: aabcxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypAzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypqqAzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypqqqAzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypqqqqAzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz"],-     Just [" 0: aaaabcxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: abxyzzpqrrrabbxyyyypqAzz"],-     Just [" 0: aabxyzzzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaabxyzzzzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaaabxyzzzzpqrrrabbxyyyypqAzz"],-     Just [" 0: abcxyzzpqrrrabbxyyyypqAzz"],-     Just [" 0: aabcxyzzzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaabcxyzzzzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz"],-     Just [" 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypABzz"],-     Just [" 0: aaabcxyzpqrrrabbxyyyypABBzz"],-     Just [" 0: aaabxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: aaaabxyzpqrrrabbxyyyypqAzz"],-     Just [" 0: abcxyzpqrrrabbxyyyypqAzz"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(abc){1,2}zz" []-    ["abczz",-     "abcabczz",-     "*** Failers",-     "zz",-     "abcabcabczz",-     ">>abczz"]-    [Just [" 0: abczz"],-     Just [" 0: abcabczz"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(b+?|a){1,2}?c" []-    ["bc",-     "bbc",-     "bbbc",-     "bac",-     "bbac",-     "aac",-     "abbbbbbbbbbbc",-     "bbbbbbbbbbbac",-     "*** Failers",-     "aaac",-     "abbbbbbbbbbbac"]-    [Just [" 0: bc"],-     Just [" 0: bbc"],-     Just [" 0: bbbc"],-     Just [" 0: bac"],-     Just [" 0: bbac"],-     Just [" 0: aac"],-     Just [" 0: abbbbbbbbbbbc"],-     Just [" 0: bbbbbbbbbbbac"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(b+|a){1,2}c" []-    ["bc",-     "bbc",-     "bbbc",-     "bac",-     "bbac",-     "aac",-     "abbbbbbbbbbbc",-     "bbbbbbbbbbbac",-     "*** Failers",-     "aaac",-     "abbbbbbbbbbbac"]-    [Just [" 0: bc"],-     Just [" 0: bbc"],-     Just [" 0: bbbc"],-     Just [" 0: bac"],-     Just [" 0: bbac"],-     Just [" 0: aac"],-     Just [" 0: abbbbbbbbbbbc"],-     Just [" 0: bbbbbbbbbbbac"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(b+|a){1,2}?bc" []-    ["bbc"]-    [Just [" 0: bbc"]]-,-testRegex "^(b*|ba){1,2}?bc" []-    ["babc",-     "bbabc",-     "bababc",-     "*** Failers",-     "bababbc",-     "babababc"]-    [Just [" 0: babc"],-     Just [" 0: bbabc"],-     Just [" 0: bababc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(ba|b*){1,2}?bc" []-    ["babc",-     "bbabc",-     "bababc",-     "*** Failers",-     "bababbc",-     "babababc"]-    [Just [" 0: babc"],-     Just [" 0: bbabc"],-     Just [" 0: bababc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\ca\\cA\\c[\\c{\\c:" []-    ["\\x01\\x01\\e;z"]-    [Just [" 0: \\x01\\x01\\x1b;z"]]-,-testRegex "^[ab\\]cde]" []-    ["athing",-     "bthing",-     "]thing",-     "cthing",-     "dthing",-     "ething",-     "*** Failers",-     "fthing",-     "[thing",-     "\\\\thing"]-    [Just [" 0: a"],-     Just [" 0: b"],-     Just [" 0: ]"],-     Just [" 0: c"],-     Just [" 0: d"],-     Just [" 0: e"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[]cde]" []-    ["]thing",-     "cthing",-     "dthing",-     "ething",-     "*** Failers",-     "athing",-     "fthing"]-    [Just [" 0: ]"],-     Just [" 0: c"],-     Just [" 0: d"],-     Just [" 0: e"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[^ab\\]cde]" []-    ["fthing",-     "[thing",-     "\\\\thing",-     "*** Failers",-     "athing",-     "bthing",-     "]thing",-     "cthing",-     "dthing",-     "ething"]-    [Just [" 0: f"],-     Just [" 0: ["],-     Just [" 0: \\"],-     Just [" 0: *"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[^]cde]" []-    ["athing",-     "fthing",-     "*** Failers",-     "]thing",-     "cthing",-     "dthing",-     "ething"]-    [Just [" 0: a"],-     Just [" 0: f"],-     Just [" 0: *"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\\129" []-    ["\129"]-    [Just [" 0: \\x81"]]-,-testRegex "^\255" []-    ["\255"]-    [Just [" 0: \\xff"]]-,-testRegex "^[0-9]+$" []-    ["0",-     "1",-     "2",-     "3",-     "4",-     "5",-     "6",-     "7",-     "8",-     "9",-     "10",-     "100",-     "*** Failers",-     "abc"]-    [Just [" 0: 0"],-     Just [" 0: 1"],-     Just [" 0: 2"],-     Just [" 0: 3"],-     Just [" 0: 4"],-     Just [" 0: 5"],-     Just [" 0: 6"],-     Just [" 0: 7"],-     Just [" 0: 8"],-     Just [" 0: 9"],-     Just [" 0: 10"],-     Just [" 0: 100"],-     Nothing,-     Nothing]-,-testRegex "^.*nter" []-    ["enter",-     "inter",-     "uponter"]-    [Just [" 0: enter"],-     Just [" 0: inter"],-     Just [" 0: uponter"]]-,-testRegex "^xxx[0-9]+$" []-    ["xxx0",-     "xxx1234",-     "*** Failers",-     "xxx"]-    [Just [" 0: xxx0"],-     Just [" 0: xxx1234"],-     Nothing,-     Nothing]-,-testRegex "^.+[0-9][0-9][0-9]$" []-    ["x123",-     "xx123",-     "123456",-     "*** Failers",-     "123",-     "x1234"]-    [Just [" 0: x123"],-     Just [" 0: xx123"],-     Just [" 0: 123456"],-     Nothing,-     Nothing,-     Just [" 0: x1234"]]-,-testRegex "^.+?[0-9][0-9][0-9]$" []-    ["x123",-     "xx123",-     "123456",-     "*** Failers",-     "123",-     "x1234"]-    [Just [" 0: x123"],-     Just [" 0: xx123"],-     Just [" 0: 123456"],-     Nothing,-     Nothing,-     Just [" 0: x1234"]]-,-testRegex "^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$" []-    ["abc!pqr=apquxz.ixr.zzz.ac.uk",-     "*** Failers",-     "!pqr=apquxz.ixr.zzz.ac.uk",-     "abc!=apquxz.ixr.zzz.ac.uk",-     "abc!pqr=apquxz:ixr.zzz.ac.uk",-     "abc!pqr=apquxz.ixr.zzz.ac.ukk"]-    [Just [" 0: abc!pqr=apquxz.ixr.zzz.ac.uk"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex ":" []-    ["Well, we need a colon: somewhere",-     "*** Fail if we don't"]-    [Just [" 0: :"],-     Nothing]-,-testRegex "([\\da-f:]+)$" [caseless]-    ["0abc",-     "abc",-     "fed",-     "E",-     "::",-     "5f03:12C0::932e",-     "fed def",-     "Any old stuff",-     "*** Failers",-     "0zzz",-     "gzzz",-     "fed\\x20",-     "Any old rubbish"]-    [Just [" 0: 0abc"],-     Just [" 0: abc"],-     Just [" 0: fed"],-     Just [" 0: E"],-     Just [" 0: ::"],-     Just [" 0: 5f03:12C0::932e"],-     Just [" 0: def"],-     Just [" 0: ff"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$" []-    [".1.2.3",-     "A.12.123.0",-     "*** Failers",-     ".1.2.3333",-     "1.2.3",-     "1234.2.3"]-    [Just [" 0: .1.2.3"],-     Just [" 0: A.12.123.0"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$" []-    ["1 IN SOA non-sp1 non-sp2(",-     "1    IN    SOA    non-sp1    non-sp2   (",-     "*** Failers",-     "1IN SOA non-sp1 non-sp2("]-    [Just [" 0: 1 IN SOA non-sp1 non-sp2("],-     Just [" 0: 1    IN    SOA    non-sp1    non-sp2   ("],-     Nothing,-     Nothing]-,-testRegex "^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$" []-    ["a.",-     "Z.",-     "2.",-     "ab-c.pq-r.",-     "sxk.zzz.ac.uk.",-     "x-.y-.",-     "*** Failers",-     "-abc.peq."]-    [Just [" 0: a."],-     Just [" 0: Z."],-     Just [" 0: 2."],-     Just [" 0: ab-c.pq-r."],-     Just [" 0: sxk.zzz.ac.uk."],-     Just [" 0: x-.y-."],-     Nothing,-     Nothing]-,-testRegex "^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$" []-    ["*.a",-     "*.b0-a",-     "*.c3-b.c",-     "*.c-a.b-c",-     "*** Failers",-     "*.0",-     "*.a-",-     "*.a-b.c-",-     "*.c-a.0-c"]-    [Just [" 0: *.a"],-     Just [" 0: *.b0-a"],-     Just [" 0: *.c3-b.c"],-     Just [" 0: *.c-a.b-c"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(?=ab(de))(abd)(e)" []-    ["abde"]-    [Just [" 0: abde"]]-,-testRegex "^(?!(ab)de|x)(abd)(f)" []-    ["abdf"]-    [Just [" 0: abdf"]]-,-testRegex "^(?=(ab(cd)))(ab)" []-    ["abcd"]-    [Just [" 0: ab"]]-,-testRegex "^[\\da-f](\\.[\\da-f])*$" [caseless]-    ["a.b.c.d",-     "A.B.C.D",-     "a.b.c.1.2.3.C"]-    [Just [" 0: a.b.c.d"],-     Just [" 0: A.B.C.D"],-     Just [" 0: a.b.c.1.2.3.C"]]-,-testRegex "^\\\".*\\\"\\s*(;.*)?$" []-    ["\\\"1234\\\"",-     "\\\"abcd\\\" ;",-     "\\\"\\\" ; rhubarb",-     "*** Failers",-     "\\\"1234\\\" : things"]-    [Just [" 0: \"1234\""],-     Just [" 0: \"abcd\" ;"],-     Just [" 0: \"\" ; rhubarb"],-     Nothing,-     Nothing]-,-testRegex "^$" []-    ["\\",-     "*** Failers"]-    [Just [" 0: "],-     Nothing]-,-testRegex "   ^    a   (?# begins with a)  b\\sc (?# then b c) $ (?# then end)" [ERROR]-    ["ab c",-     "*** Failers",-     "abc",-     "ab cde"]-    [Just [" 0: ab c"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?x)   ^    a   (?# begins with a)  b\\sc (?# then b c) $ (?# then end)" []-    ["ab c",-     "*** Failers",-     "abc",-     "ab cde"]-    [Just [" 0: ab c"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^   a\\ b[c ]d       $" [ERROR]-    ["a bcd",-     "a b d",-     "*** Failers",-     "abcd",-     "ab d"]-    [Just [" 0: a bcd"],-     Just [" 0: a b d"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$" []-    ["abcdefhijklm"]-    [Just [" 0: abcdefhijklm"]]-,-testRegex "^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$" []-    ["abcdefhijklm"]-    [Just [" 0: abcdefhijklm"]]-,-testRegex "^[\\w][\\W][\\s][\\S][\\d][\\D][\\b][\\n][\\c]][\\022]" []-    ["a+ Z0+\\x08\\n\\x1d\\x12"]-    [Just [" 0: a+ Z0+\\x08\\x0a\\x1d\\x12"]]-,-testRegex "^[.^$|()*+?{,}]+" []-    [".^\\$(*+)|{?,?}"]-    [Just [" 0: .^$(*+)|{?,?}"],-     Just [" 1: .^$(*+)|{?,?"],-     Just [" 2: .^$(*+)|{?,"],-     Just [" 3: .^$(*+)|{?"],-     Just [" 4: .^$(*+)|{"],-     Just [" 5: .^$(*+)|"],-     Just [" 6: .^$(*+)"],-     Just [" 7: .^$(*+"],-     Just [" 8: .^$(*"],-     Just [" 9: .^$("],-     Just ["10: .^$"],-     Just ["11: .^"],-     Just ["12: ."]]-,-testRegex "^a*\\w" []-    ["z",-     "az",-     "aaaz",-     "a",-     "aa",-     "aaaa",-     "a+",-     "aa+"]-    [Just [" 0: z"],-     Just [" 0: az"],-     Just [" 1: a"],-     Just [" 0: aaaz"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 0: a"],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 0: a"],-     Just [" 0: aa"],-     Just [" 1: a"]]-,-testRegex "^a*?\\w" []-    ["z",-     "az",-     "aaaz",-     "a",-     "aa",-     "aaaa",-     "a+",-     "aa+"]-    [Just [" 0: z"],-     Just [" 0: az"],-     Just [" 1: a"],-     Just [" 0: aaaz"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 0: a"],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 0: a"],-     Just [" 0: aa"],-     Just [" 1: a"]]-,-testRegex "^a+\\w" []-    ["az",-     "aaaz",-     "aa",-     "aaaa",-     "aa+"]-    [Just [" 0: az"],-     Just [" 0: aaaz"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 0: aa"],-     Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 0: aa"]]-,-testRegex "^a+?\\w" []-    ["az",-     "aaaz",-     "aa",-     "aaaa",-     "aa+"]-    [Just [" 0: az"],-     Just [" 0: aaaz"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 0: aa"],-     Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 0: aa"]]-,-testRegex "^\\d{8}\\w{2,}" []-    ["1234567890",-     "12345678ab",-     "12345678__",-     "*** Failers",-     "1234567"]-    [Just [" 0: 1234567890"],-     Just [" 0: 12345678ab"],-     Just [" 0: 12345678__"],-     Nothing,-     Nothing]-,-testRegex "^[aeiou\\d]{4,5}$" []-    ["uoie",-     "1234",-     "12345",-     "aaaaa",-     "*** Failers",-     "123456"]-    [Just [" 0: uoie"],-     Just [" 0: 1234"],-     Just [" 0: 12345"],-     Just [" 0: aaaaa"],-     Nothing,-     Nothing]-,-testRegex "^[aeiou\\d]{4,5}?" []-    ["uoie",-     "1234",-     "12345",-     "aaaaa",-     "123456"]-    [Just [" 0: uoie"],-     Just [" 0: 1234"],-     Just [" 0: 12345"],-     Just [" 1: 1234"],-     Just [" 0: aaaaa"],-     Just [" 1: aaaa"],-     Just [" 0: 12345"],-     Just [" 1: 1234"]]-,-testRegex "^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]" []-    ["From abcd  Mon Sep 01 12:33:02 1997"]-    [Just [" 0: From abcd  Mon Sep 01 12:33"]]-,-testRegex "^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d" []-    ["From abcd  Mon Sep 01 12:33:02 1997",-     "From abcd  Mon Sep  1 12:33:02 1997",-     "*** Failers",-     "From abcd  Sep 01 12:33:02 1997"]-    [Just [" 0: From abcd  Mon Sep 01 12:33"],-     Just [" 0: From abcd  Mon Sep  1 12:33"],-     Nothing,-     Nothing]-,-testRegex "^12.34" [ERROR]-    ["12\\n34",-     "12\\r34"]-    [Just [" 0: 12\\x0a34"],-     Just [" 0: 12\\x0d34"]]-,-testRegex "\\w+(?=\\t)" []-    ["the quick brown\\t fox"]-    [Just [" 0: brown"]]-,-testRegex "foo(?!bar)(.*)" []-    ["foobar is foolish see?"]-    [Just [" 0: foolish see?"],-     Just [" 1: foolish see"],-     Just [" 2: foolish se"],-     Just [" 3: foolish s"],-     Just [" 4: foolish "],-     Just [" 5: foolish"],-     Just [" 6: foolis"],-     Just [" 7: fooli"],-     Just [" 8: fool"],-     Just [" 9: foo"]]-,-testRegex "(?:(?!foo)...|^.{0,2})bar(.*)" []-    ["foobar crowbar etc",-     "barrel",-     "2barrel",-     "A barrel"]-    [Just [" 0: rowbar etc"],-     Just [" 1: rowbar et"],-     Just [" 2: rowbar e"],-     Just [" 3: rowbar "],-     Just [" 4: rowbar"],-     Just [" 0: barrel"],-     Just [" 1: barre"],-     Just [" 2: barr"],-     Just [" 3: bar"],-     Just [" 0: 2barrel"],-     Just [" 1: 2barre"],-     Just [" 2: 2barr"],-     Just [" 3: 2bar"],-     Just [" 0: A barrel"],-     Just [" 1: A barre"],-     Just [" 2: A barr"],-     Just [" 3: A bar"]]-,-testRegex "^(\\D*)(?=\\d)(?!123)" []-    ["abc456",-     "*** Failers",-     "abc123"]-    [Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "ERROR" []-    ["inside)/",-     "1234"]-    [Just [" 0: 1234"]]-,-testRegex "ERROR" []-    ["/x",-     "1234"]-    [Just [" 0: 1234"]]-,-testRegex "ERROR" []-    ["abcd/x",-     "abcd"]-    [Just [" 0: abcd"]]-,-testRegex "^abcd#rhubarb" [ERROR]-    ["abcd"]-    [Just [" 0: abcd"]]-,-testRegex "(?!^)abc" []-    ["the abc",-     "*** Failers",-     "abc"]-    [Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "(?=^)abc" []-    ["abc",-     "*** Failers",-     "the abc"]-    [Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "^[ab]{1,3}(ab*|b)" []-    ["aabbbbb"]-    [Just [" 0: aabbbbb"],-     Just [" 1: aabbbb"],-     Just [" 2: aabbb"],-     Just [" 3: aabb"],-     Just [" 4: aab"],-     Just [" 5: aa"]]-,-testRegex "^[ab]{1,3}?(ab*|b)" []-    ["aabbbbb"]-    [Just [" 0: aabbbbb"],-     Just [" 1: aabbbb"],-     Just [" 2: aabbb"],-     Just [" 3: aabb"],-     Just [" 4: aab"],-     Just [" 5: aa"]]-,-testRegex "^[ab]{1,3}?(ab*?|b)" []-    ["aabbbbb"]-    [Just [" 0: aabbbbb"],-     Just [" 1: aabbbb"],-     Just [" 2: aabbb"],-     Just [" 3: aabb"],-     Just [" 4: aab"],-     Just [" 5: aa"]]-,-testRegex "^[ab]{1,3}(ab*?|b)" []-    ["aabbbbb"]-    [Just [" 0: aabbbbb"],-     Just [" 1: aabbbb"],-     Just [" 2: aabbb"],-     Just [" 3: aabb"],-     Just [" 4: aab"],-     Just [" 5: aa"]]-,-testRegex "ERROR" []-    ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*                          # optional leading comment",-     "(?:    (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\" (?:                      # opening quote...",-     "[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote",-     "|                     #    or",-     "\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)",-     ")* \"  # closing quote",-     ")                    # initial word",-     "(?:  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  \\.  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*   (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\" (?:                      # opening quote...",-     "[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote",-     "|                     #    or",-     "\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)",-     ")* \"  # closing quote",-     ")  )* # further okay, if led by a period",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  @  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*    (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|   \\[                         # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff",-     "\\]                        #           ]",-     ")                           # initial subdomain",-     "(?:                                  #",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  \\.                        # if led by a period...",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*   (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|   \\[                         # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff",-     "\\]                        #           ]",-     ")                     #   ...further okay",-     ")*",-     "# address",-     "|                     #  or",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\" (?:                      # opening quote...",-     "[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote",-     "|                     #    or",-     "\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)",-     ")* \"  # closing quote",-     ")             # one word, optionally followed by....",-     "(?:",-     "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037]  |  # atom and space parts, or...",-     "\\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)       |  # comments, or..."]-    [Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*                          # optional leading comment"],-     Just ["(?:    (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\" (?:                      # opening quote..."],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote"],-     Just ["|                     #    or"],-     Just ["\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)"],-     Just [")* \"  # closing quote"],-     Just [")                    # initial word"],-     Just ["(?:  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  \\.  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*   (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\" (?:                      # opening quote..."],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote"],-     Just ["|                     #    or"],-     Just ["\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)"],-     Just [")* \"  # closing quote"],-     Just [")  )* # further okay, if led by a period"],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  @  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*    (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|   \\[                         # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff"],-     Just ["\\]                        #           ]"],-     Just [")                           # initial subdomain"],-     Just ["(?:                                  #"],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  \\.                        # if led by a period..."],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*   (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|   \\[                         # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff"],-     Just ["\\]                        #           ]"],-     Just [")                     #   ...further okay"],-     Just [")*"],-     Just ["# address"],-     Just ["|                     #  or"],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\" (?:                      # opening quote..."],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote"],-     Just ["|                     #    or"],-     Just ["\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)"],-     Just [")* \"  # closing quote"],-     Just [")             # one word, optionally followed by...."],-     Just ["(?:"],-     Just ["[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037]  |  # atom and space parts, or..."],-     Just ["\\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)       |  # comments, or..."]]-,-testRegex "ERROR" []-    ["[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote",-     "|                     #    or",-     "\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)",-     ")* \"  # closing quote",-     "# quoted strings",-     ")*",-     "<  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*                     # leading <",-     "(?:  @  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*    (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|   \\[                         # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff",-     "\\]                        #           ]",-     ")                           # initial subdomain",-     "(?:                                  #",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  \\.                        # if led by a period...",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*   (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|   \\[                         # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff",-     "\\]                        #           ]",-     ")                     #   ...further okay",-     ")*"]-    [Just ["[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote"],-     Just ["|                     #    or"],-     Just ["\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)"],-     Just [")* \"  # closing quote"],-     Just ["# quoted strings"],-     Just [")*"],-     Just ["<  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*                     # leading <"],-     Just ["(?:  @  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*    (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|   \\[                         # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff"],-     Just ["\\]                        #           ]"],-     Just [")                           # initial subdomain"],-     Just ["(?:                                  #"],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  \\.                        # if led by a period..."],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*   (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|   \\[                         # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff"],-     Just ["\\]                        #           ]"],-     Just [")                     #   ...further okay"],-     Just [")*"]]-,-testRegex "ERROR" []-    ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  ,  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  @  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*    (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|   \\[                         # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff",-     "\\]                        #           ]",-     ")                           # initial subdomain",-     "(?:                                  #",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  \\.                        # if led by a period...",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*   (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|   \\[                         # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff",-     "\\]                        #           ]",-     ")                     #   ...further okay",-     ")*",-     ")* # further okay, if led by comma",-     ":                                # closing colon",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  )? #       optional route",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\" (?:                      # opening quote...",-     "[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote",-     "|                     #    or",-     "\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)",-     ")* \"  # closing quote",-     ")                    # initial word",-     "(?:  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  \\.  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*   (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\" (?:                      # opening quote...",-     "[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote",-     "|                     #    or",-     "\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)",-     ")* \"  # closing quote",-     ")  )* # further okay, if led by a period",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  @  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*    (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|   \\[                         # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff",-     "\\]                        #           ]",-     ")                           # initial subdomain",-     "(?:                                  #",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  \\.                        # if led by a period...",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*   (?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|   \\[                         # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff",-     "\\]                        #           ]",-     ")                     #   ...further okay",-     ")*",-     "#       address spec",-     "(?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*  > #                  trailing >",-     "# name and address",-     ")  (?: [\\040\\t] |  \\(",-     "(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*",-     "\\)  )*                       # optional trailing comment",-     "/x",-     "Alan Other <user\\@dom.ain>",-     "<user\\@dom.ain>",-     "user\\@dom.ain",-     "\\\"A. Other\\\" <user.1234\\@dom.ain> (a comment)",-     "A. Other <user.1234\\@dom.ain> (a comment)",-     "\\\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\\\"\\@x400-re.lay",-     "A missing angle <user\\@some.where",-     "*** Failers",-     "The quick brown fox"]-    [Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  ,  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  @  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*    (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|   \\[                         # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff"],-     Just ["\\]                        #           ]"],-     Just [")                           # initial subdomain"],-     Just ["(?:                                  #"],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  \\.                        # if led by a period..."],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*   (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|   \\[                         # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff"],-     Just ["\\]                        #           ]"],-     Just [")                     #   ...further okay"],-     Just [")*"],-     Just [")* # further okay, if led by comma"],-     Just [":                                # closing colon"],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  )? #       optional route"],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\" (?:                      # opening quote..."],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote"],-     Just ["|                     #    or"],-     Just ["\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)"],-     Just [")* \"  # closing quote"],-     Just [")                    # initial word"],-     Just ["(?:  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  \\.  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*   (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\" (?:                      # opening quote..."],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"]                #   Anything except backslash and quote"],-     Just ["|                     #    or"],-     Just ["\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)"],-     Just [")* \"  # closing quote"],-     Just [")  )* # further okay, if led by a period"],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  @  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*    (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|   \\[                         # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff"],-     Just ["\\]                        #           ]"],-     Just [")                           # initial subdomain"],-     Just ["(?:                                  #"],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  \\.                        # if led by a period..."],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*   (?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|   \\[                         # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff"],-     Just ["\\]                        #           ]"],-     Just [")                     #   ...further okay"],-     Just [")*"],-     Just ["#       address spec"],-     Just ["(?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*  > #                  trailing >"],-     Just ["# name and address"],-     Just [")  (?: [\\040\\t] |  \\("],-     Just ["(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*"],-     Just ["\\)  )*                       # optional trailing comment"],-     Just ["/x"],-     Just [" 0: Alan Other <user@dom.ain>"],-     Just [" 0: user@dom.ain"],-     Just [" 1: user@dom"],-     Just [" 0: user@dom.ain"],-     Just [" 1: user@dom"],-     Just [" 0: \"A. Other\" <user.1234@dom.ain> (a comment)"],-     Just [" 1: \"A. Other\" <user.1234@dom.ain> "],-     Just [" 2: \"A. Other\" <user.1234@dom.ain>"],-     Just [" 0:  Other <user.1234@dom.ain> (a comment)"],-     Just [" 1:  Other <user.1234@dom.ain> "],-     Just [" 2:  Other <user.1234@dom.ain>"],-     Just [" 0: \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re.lay"],-     Just [" 1: \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re"],-     Just [" 0: user@some.where"],-     Just [" 1: user@some"],-     Nothing,-     Nothing]-,-testRegex "ERROR" []-    ["(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional leading comment",-     "(?:",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "# Atom",-     "|                       #  or",-     "\"                                     # \"",-     "[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal",-     "(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*",-     "\"                                     #        \"",-     "# Quoted string",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "\\.",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "# Atom",-     "|                       #  or",-     "\"                                     # \"",-     "[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal",-     "(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*",-     "\"                                     #        \"",-     "# Quoted string",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# additional words",-     ")*",-     "@",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\\[                            # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff",-     "\\]                           #           ]",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     "(?:",-     "\\.",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\\[                            # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff",-     "\\]                           #           ]",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     ")*",-     "# address",-     "|                             #  or",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "# Atom",-     "|                       #  or",-     "\"                                     # \"",-     "[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal",-     "(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*",-     "\"                                     #        \"",-     "# Quoted string",-     ")",-     "# leading word",-     "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] *               # \"normal\" atoms and or spaces",-     "(?:",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "|",-     "\"                                     # \"",-     "[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal",-     "(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*",-     "\"                                     #        \"",-     ") # \"special\" comment or quoted string",-     "[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] *            #  more \"normal\"",-     ")*",-     "<",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# <",-     "(?:",-     "@",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\\[                            # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff",-     "\\]                           #           ]",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     "(?:",-     "\\.",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\\[                            # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff",-     "\\]                           #           ]",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     ")*",-     "(?: ,",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "@",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\\[                            # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff",-     "\\]                           #           ]",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     "(?:",-     "\\.",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\\[                            # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff",-     "\\]                           #           ]",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     ")*",-     ")*  # additional domains",-     ":",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     ")?     #       optional route",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "# Atom",-     "|                       #  or",-     "\"                                     # \"",-     "[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal",-     "(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*",-     "\"                                     #        \"",-     "# Quoted string",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "\\.",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "# Atom",-     "|                       #  or",-     "\"                                     # \"",-     "[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal",-     "(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*",-     "\"                                     #        \"",-     "# Quoted string",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# additional words",-     ")*",-     "@",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\\[                            # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff",-     "\\]                           #           ]",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     "(?:",-     "\\.",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "(?:",-     "[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...",-     "(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom",-     "|",-     "\\[                            # [",-     "(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff",-     "\\]                           #           ]",-     ")",-     "[\\040\\t]*                    # Nab whitespace.",-     "(?:",-     "\\(                              #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*",-     "(?:                                 #       (",-     "(?:  \\\\ [^\\x80-\\xff]  |",-     "\\(                            #  (",-     "[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*",-     "(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*",-     "\\)                           #                       )",-     ")    #         special",-     "[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*",-     ")*                                  #            )*",-     "\\)                             #                )",-     "[\\040\\t]* )*    # If comment found, allow more spaces.",-     "# optional trailing comments",-     ")*",-     "#       address spec",-     ">                    #                 >",-     "# name and address",-     ")",-     "/x",-     "Alan Other <user\\@dom.ain>",-     "<user\\@dom.ain>",-     "user\\@dom.ain",-     "\\\"A. Other\\\" <user.1234\\@dom.ain> (a comment)",-     "A. Other <user.1234\\@dom.ain> (a comment)",-     "\\\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\\\"\\@x400-re.lay",-     "A missing angle <user\\@some.where",-     "*** Failers",-     "The quick brown fox"]-    [Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional leading comment"],-     Just ["(?:"],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["# Atom"],-     Just ["|                       #  or"],-     Just ["\"                                     # \""],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal"],-     Just ["(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*"],-     Just ["\"                                     #        \""],-     Just ["# Quoted string"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["\\."],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["# Atom"],-     Just ["|                       #  or"],-     Just ["\"                                     # \""],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal"],-     Just ["(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*"],-     Just ["\"                                     #        \""],-     Just ["# Quoted string"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# additional words"],-     Just [")*"],-     Just ["@"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\\[                            # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff"],-     Just ["\\]                           #           ]"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just ["(?:"],-     Just ["\\."],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\\[                            # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff"],-     Just ["\\]                           #           ]"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just [")*"],-     Just ["# address"],-     Just ["|                             #  or"],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["# Atom"],-     Just ["|                       #  or"],-     Just ["\"                                     # \""],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal"],-     Just ["(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*"],-     Just ["\"                                     #        \""],-     Just ["# Quoted string"],-     Just [")"],-     Just ["# leading word"],-     Just ["[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] *               # \"normal\" atoms and or spaces"],-     Just ["(?:"],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["|"],-     Just ["\"                                     # \""],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal"],-     Just ["(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*"],-     Just ["\"                                     #        \""],-     Just [") # \"special\" comment or quoted string"],-     Just ["[^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] *            #  more \"normal\""],-     Just [")*"],-     Just ["<"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# <"],-     Just ["(?:"],-     Just ["@"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\\[                            # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff"],-     Just ["\\]                           #           ]"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just ["(?:"],-     Just ["\\."],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\\[                            # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff"],-     Just ["\\]                           #           ]"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just [")*"],-     Just ["(?: ,"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["@"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\\[                            # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff"],-     Just ["\\]                           #           ]"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just ["(?:"],-     Just ["\\."],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\\[                            # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff"],-     Just ["\\]                           #           ]"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just [")*"],-     Just [")*  # additional domains"],-     Just [":"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just [")?     #       optional route"],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["# Atom"],-     Just ["|                       #  or"],-     Just ["\"                                     # \""],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal"],-     Just ["(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*"],-     Just ["\"                                     #        \""],-     Just ["# Quoted string"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["\\."],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["# Atom"],-     Just ["|                       #  or"],-     Just ["\"                                     # \""],-     Just ["[^\\\\\\x80-\\xff\\n\\015\"] *                            #   normal"],-     Just ["(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015\"] * )*        #   ( special normal* )*"],-     Just ["\"                                     #        \""],-     Just ["# Quoted string"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# additional words"],-     Just [")*"],-     Just ["@"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\\[                            # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff"],-     Just ["\\]                           #           ]"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just ["(?:"],-     Just ["\\."],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["(?:"],-     Just ["[^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters..."],-     Just ["(?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom"],-     Just ["|"],-     Just ["\\[                            # ["],-     Just ["(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff"],-     Just ["\\]                           #           ]"],-     Just [")"],-     Just ["[\\040\\t]*                    # Nab whitespace."],-     Just ["(?:"],-     Just ["\\(                              #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*"],-     Just ["(?:                                 #       ("],-     Just ["(?:  \\\\ [^\\x80-\\xff]  |"],-     Just ["\\(                            #  ("],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*"],-     Just ["(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*"],-     Just ["\\)                           #                       )"],-     Just [")    #         special"],-     Just ["[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*"],-     Just [")*                                  #            )*"],-     Just ["\\)                             #                )"],-     Just ["[\\040\\t]* )*    # If comment found, allow more spaces."],-     Just ["# optional trailing comments"],-     Just [")*"],-     Just ["#       address spec"],-     Just [">                    #                 >"],-     Just ["# name and address"],-     Just [")"],-     Just ["/x"],-     Just [" 0: Alan Other <user@dom.ain>"],-     Just [" 0: user@dom.ain"],-     Just [" 1: user@dom"],-     Just [" 0: user@dom.ain"],-     Just [" 1: user@dom"],-     Just [" 0: \"A. Other\" <user.1234@dom.ain>"],-     Just [" 0:  Other <user.1234@dom.ain>"],-     Just [" 0: \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re.lay"],-     Just [" 1: \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"@x400-re"],-     Just [" 0: user@some.where"],-     Just [" 1: user@some"],-     Nothing,-     Nothing]-,-testRegex "abc\\0def\\00pqr\\000xyz\\0000AB" []-    ["abc\\0def\\00pqr\\000xyz\\0000AB",-     "abc456 abc\\0def\\00pqr\\000xyz\\0000ABCDE"]-    [Just [" 0: abc\\x00def\\x00pqr\\x00xyz\\x000AB"],-     Just [" 0: abc\\x00def\\x00pqr\\x00xyz\\x000AB"]]-,-testRegex "abc\\x0def\\x00pqr\\x000xyz\\x0000AB" []-    ["abc\\x0def\\x00pqr\\x000xyz\\x0000AB",-     "abc456 abc\\x0def\\x00pqr\\x000xyz\\x0000ABCDE"]-    [Just [" 0: abc\\x0def\\x00pqr\\x000xyz\\x0000AB"],-     Just [" 0: abc\\x0def\\x00pqr\\x000xyz\\x0000AB"]]-,-testRegex "^[\\000-\\037]" []-    ["\\0A",-     "\\01B",-     "\\037C"]-    [Just [" 0: \\x00"],-     Just [" 0: \\x01"],-     Just [" 0: \\x1f"]]-,-testRegex "\\0*" []-    ["\\0\\0\\0\\0"]-    [Just [" 0: \\x00\\x00\\x00\\x00"],-     Just [" 1: \\x00\\x00\\x00"],-     Just [" 2: \\x00\\x00"],-     Just [" 3: \\x00"],-     Just [" 4: "]]-,-testRegex "A\\x0{2,3}Z" []-    ["The A\\x0\\x0Z",-     "An A\\0\\x0\\0Z",-     "*** Failers",-     "A\\0Z",-     "A\\0\\x0\\0\\x0Z"]-    [Just [" 0: A\\x00\\x00Z"],-     Just [" 0: A\\x00\\x00\\x00Z"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\s" []-    ["\\040abc",-     "\\x0cabc",-     "\\nabc",-     "\\rabc",-     "\\tabc",-     "*** Failers",-     "abc"]-    [Just [" 0:  "],-     Just [" 0: \\x0c"],-     Just [" 0: \\x0a"],-     Just [" 0: \\x0d"],-     Just [" 0: \\x09"],-     Nothing,-     Nothing]-,-testRegex "ERROR" []-    ["c/x",-     "abc"]-    [Just [" 0: abc"]]-,-testRegex "ab{1,3}bc" []-    ["abbbbc",-     "abbbc",-     "abbc",-     "*** Failers",-     "abc",-     "abbbbbc"]-    [Just [" 0: abbbbc"],-     Just [" 0: abbbc"],-     Just [" 0: abbc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "([^.]*)\\.([^:]*):[T ]+(.*)" []-    ["track1.title:TBlah blah blah"]-    [Just [" 0: track1.title:TBlah blah blah"],-     Just [" 1: track1.title:TBlah blah bla"],-     Just [" 2: track1.title:TBlah blah bl"],-     Just [" 3: track1.title:TBlah blah b"],-     Just [" 4: track1.title:TBlah blah "],-     Just [" 5: track1.title:TBlah blah"],-     Just [" 6: track1.title:TBlah bla"],-     Just [" 7: track1.title:TBlah bl"],-     Just [" 8: track1.title:TBlah b"],-     Just [" 9: track1.title:TBlah "],-     Just ["10: track1.title:TBlah"],-     Just ["11: track1.title:TBla"],-     Just ["12: track1.title:TBl"],-     Just ["13: track1.title:TB"],-     Just ["14: track1.title:T"]]-,-testRegex "([^.]*)\\.([^:]*):[T ]+(.*)" [caseless]-    ["track1.title:TBlah blah blah"]-    [Just [" 0: track1.title:TBlah blah blah"],-     Just [" 1: track1.title:TBlah blah bla"],-     Just [" 2: track1.title:TBlah blah bl"],-     Just [" 3: track1.title:TBlah blah b"],-     Just [" 4: track1.title:TBlah blah "],-     Just [" 5: track1.title:TBlah blah"],-     Just [" 6: track1.title:TBlah bla"],-     Just [" 7: track1.title:TBlah bl"],-     Just [" 8: track1.title:TBlah b"],-     Just [" 9: track1.title:TBlah "],-     Just ["10: track1.title:TBlah"],-     Just ["11: track1.title:TBla"],-     Just ["12: track1.title:TBl"],-     Just ["13: track1.title:TB"],-     Just ["14: track1.title:T"]]-,-testRegex "([^.]*)\\.([^:]*):[t ]+(.*)" [caseless]-    ["track1.title:TBlah blah blah"]-    [Just [" 0: track1.title:TBlah blah blah"],-     Just [" 1: track1.title:TBlah blah bla"],-     Just [" 2: track1.title:TBlah blah bl"],-     Just [" 3: track1.title:TBlah blah b"],-     Just [" 4: track1.title:TBlah blah "],-     Just [" 5: track1.title:TBlah blah"],-     Just [" 6: track1.title:TBlah bla"],-     Just [" 7: track1.title:TBlah bl"],-     Just [" 8: track1.title:TBlah b"],-     Just [" 9: track1.title:TBlah "],-     Just ["10: track1.title:TBlah"],-     Just ["11: track1.title:TBla"],-     Just ["12: track1.title:TBl"],-     Just ["13: track1.title:TB"],-     Just ["14: track1.title:T"]]-,-testRegex "^[W-c]+$" []-    ["WXY_^abc",-     "*** Failers",-     "wxy"]-    [Just [" 0: WXY_^abc"],-     Nothing,-     Nothing]-,-testRegex "^[W-c]+$" [caseless]-    ["WXY_^abc",-     "wxy_^ABC"]-    [Just [" 0: WXY_^abc"],-     Just [" 0: wxy_^ABC"]]-,-testRegex "^[\\x3f-\\x5F]+$" [caseless]-    ["WXY_^abc",-     "wxy_^ABC"]-    [Just [" 0: WXY_^abc"],-     Just [" 0: wxy_^ABC"]]-,-testRegex "^abc$" [ERROR]-    ["abc",-     "qqq\\nabc",-     "abc\\nzzz",-     "qqq\\nabc\\nzzz"]-    [Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"]]-,-testRegex "^abc$" []-    ["abc",-     "*** Failers",-     "qqq\\nabc",-     "abc\\nzzz",-     "qqq\\nabc\\nzzz"]-    [Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\Aabc\\Z" [ERROR]-    ["abc",-     "abc\\n ",-     "*** Failers",-     "qqq\\nabc",-     "abc\\nzzz",-     "qqq\\nabc\\nzzz",-     "",-     "/\\A(.)*\\Z/s",-     "abc\\ndef"]-    [Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/\\A(.)*\\Z/s"],-     Just [" 0: abc\\x0adef"]]-,-testRegex "\\A(.)*\\Z" [ERROR]-    ["*** Failers",-     "abc\\ndef"]-    [Just [" 0: *** Failers"],-     Nothing]-,-testRegex "(?:b)|(?::+)" []-    ["b::c",-     "c::b"]-    [Just [" 0: b"],-     Just [" 0: ::"],-     Just [" 1: :"]]-,-testRegex "[-az]+" []-    ["az-",-     "*** Failers",-     "b"]-    [Just [" 0: az-"],-     Just [" 1: az"],-     Just [" 2: a"],-     Just [" 0: a"],-     Nothing]-,-testRegex "[az-]+" []-    ["za-",-     "*** Failers",-     "b"]-    [Just [" 0: za-"],-     Just [" 1: za"],-     Just [" 2: z"],-     Just [" 0: a"],-     Nothing]-,-testRegex "[a\\-z]+" []-    ["a-z",-     "*** Failers",-     "b"]-    [Just [" 0: a-z"],-     Just [" 1: a-"],-     Just [" 2: a"],-     Just [" 0: a"],-     Nothing]-,-testRegex "[a-z]+" []-    ["abcdxyz"]-    [Just [" 0: abcdxyz"],-     Just [" 1: abcdxy"],-     Just [" 2: abcdx"],-     Just [" 3: abcd"],-     Just [" 4: abc"],-     Just [" 5: ab"],-     Just [" 6: a"]]-,-testRegex "[\\d-]+" []-    ["12-34",-     "*** Failers",-     "aaa"]-    [Just [" 0: 12-34"],-     Just [" 1: 12-3"],-     Just [" 2: 12-"],-     Just [" 3: 12"],-     Just [" 4: 1"],-     Nothing,-     Nothing]-,-testRegex "[\\d-z]+" []-    ["12-34z",-     "*** Failers",-     "aaa"]-    [Just [" 0: 12-34z"],-     Just [" 1: 12-34"],-     Just [" 2: 12-3"],-     Just [" 3: 12-"],-     Just [" 4: 12"],-     Just [" 5: 1"],-     Nothing,-     Nothing]-,-testRegex "\\x5c" []-    ["\\\\"]-    [Just [" 0: \\"]]-,-testRegex "\\x20Z" []-    ["the Zoo",-     "*** Failers",-     "Zulu"]-    [Just [" 0:  Z"],-     Nothing,-     Nothing]-,-testRegex "ab{3cd" []-    ["ab{3cd"]-    [Just [" 0: ab{3cd"]]-,-testRegex "ab{3,cd" []-    ["ab{3,cd"]-    [Just [" 0: ab{3,cd"]]-,-testRegex "ab{3,4a}cd" []-    ["ab{3,4a}cd"]-    [Just [" 0: ab{3,4a}cd"]]-,-testRegex "{4,5a}bc" []-    ["{4,5a}bc"]-    [Just [" 0: {4,5a}bc"]]-,-testRegex "^a.b" [ERROR]-    ["a\\rb",-     "*** Failers",-     "a\\nb"]-    [Just [" 0: a\\x0db"],-     Nothing,-     Nothing]-,-testRegex "abc$" []-    ["abc",-     "abc\\n",-     "*** Failers",-     "abc\\ndef"]-    [Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "(abc)\\123" []-    ["abc\\x53"]-    [Just [" 0: abcS"]]-,-testRegex "(abc)\\223" []-    ["abc\\x93"]-    [Just [" 0: abc\\x93"]]-,-testRegex "(abc)\\323" []-    ["abc\\xd3"]-    [Just [" 0: abc\\xd3"]]-,-testRegex "(abc)\\100" []-    ["abc\\x40",-     "abc\\100"]-    [Just [" 0: abc@"],-     Just [" 0: abc@"]]-,-testRegex "(abc)\\1000" []-    ["abc\\x400",-     "abc\\x40\\x30",-     "abc\\1000",-     "abc\\100\\x30",-     "abc\\100\\060",-     "abc\\100\\60"]-    [Just [" 0: abc@0"],-     Just [" 0: abc@0"],-     Just [" 0: abc@0"],-     Just [" 0: abc@0"],-     Just [" 0: abc@0"],-     Just [" 0: abc@0"]]-,-testRegex "abc\\81" []-    ["abc\\081",-     "abc\\0\\x38\\x31"]-    [Just [" 0: abc\\x0081"],-     Just [" 0: abc\\x0081"]]-,-testRegex "abc\\91" []-    ["abc\\091",-     "abc\\0\\x39\\x31"]-    [Just [" 0: abc\\x0091"],-     Just [" 0: abc\\x0091"]]-,-testRegex "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123" []-    ["abcdefghijk\\12S"]-    [Just [" 0: abcdefghijk\\x0aS"]]-,-testRegex "ab\\idef" []-    ["abidef"]-    [Just [" 0: abidef"]]-,-testRegex "a{0}bc" []-    ["bc"]-    [Just [" 0: bc"]]-,-testRegex "(a|(bc)){0,0}?xyz" []-    ["xyz"]-    [Just [" 0: xyz"]]-,-testRegex "abc[\\10]de" []-    ["abc\\010de"]-    [Just [" 0: abc\\x08de"]]-,-testRegex "abc[\\1]de" []-    ["abc\\1de"]-    [Just [" 0: abc\\x01de"]]-,-testRegex "(abc)[\\1]de" []-    ["abc\\1de"]-    [Just [" 0: abc\\x01de"]]-,-testRegex "(?s)a.b" []-    ["a\\nb"]-    [Just [" 0: a\\x0ab"]]-,-testRegex "^([^a])([^\\b])([^c]*)([^d]{3,4})" []-    ["baNOTccccd",-     "baNOTcccd",-     "baNOTccd",-     "bacccd",-     "*** Failers",-     "anything",-     "b\\bc   ",-     "baccd"]-    [Just [" 0: baNOTcccc"],-     Just [" 1: baNOTccc"],-     Just [" 2: baNOTcc"],-     Just [" 3: baNOTc"],-     Just [" 4: baNOT"],-     Just [" 0: baNOTccc"],-     Just [" 1: baNOTcc"],-     Just [" 2: baNOTc"],-     Just [" 3: baNOT"],-     Just [" 0: baNOTcc"],-     Just [" 1: baNOTc"],-     Just [" 2: baNOT"],-     Just [" 0: baccc"],-     Just [" 0: *** Failers"],-     Just [" 1: *** Failer"],-     Just [" 2: *** Faile"],-     Just [" 3: *** Fail"],-     Just [" 4: *** Fai"],-     Just [" 5: *** Fa"],-     Just [" 6: *** F"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[^a]" []-    ["Abc",-     "",-     "/[^a]/i",-     "Abc "]-    [Just [" 0: A"],-     Just ["/[^a]/i"],-     Just [" 0: b"]]-,-testRegex "[^a]+" []-    ["AAAaAbc",-     "",-     "/[^a]+/i",-     "AAAaAbc "]-    [Just [" 0: AAA"],-     Just [" 1: AA"],-     Just [" 2: A"],-     Just ["/[^a]+/i"],-     Just [" 0: bc"],-     Just [" 1: b"]]-,-testRegex "[^a]+" []-    ["bbb\\nccc",-     "",-     "/[^k]$/",-     "abc",-     "*** Failers",-     "abk   ",-     "",-     "/[^k]{2,3}$/",-     "abc",-     "kbc",-     "kabc ",-     "*** Failers",-     "abk",-     "akb",-     "akk "]-    [Just [" 0: bbb\\x0accc"],-     Just [" 1: bbb\\x0acc"],-     Just [" 2: bbb\\x0ac"],-     Just [" 3: bbb\\x0a"],-     Just [" 4: bbb"],-     Just [" 5: bb"],-     Just [" 6: b"],-     Just ["/[^k]$/"],-     Just [" 0: c"],-     Just [" 0: s"],-     Nothing,-     Just ["/[^k]{2,3}$/"],-     Just [" 0: abc"],-     Just [" 0: bc"],-     Just [" 0: abc"],-     Just [" 0: ers"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\d{8,}\\@.+[^k]$" []-    ["12345678\\@a.b.c.d",-     "123456789\\@x.y.z",-     "*** Failers",-     "12345678\\@x.y.uk",-     "1234567\\@a.b.c.d       "]-    [Just [" 0: 12345678@a.b.c.d"],-     Just [" 0: 123456789@x.y.z"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[^a]" []-    ["aaaabcd",-     "aaAabcd "]-    [Just [" 0: b"],-     Just [" 0: A"]]-,-testRegex "[^a]" [caseless]-    ["aaaabcd",-     "aaAabcd "]-    [Just [" 0: b"],-     Just [" 0: b"]]-,-testRegex "[^az]" []-    ["aaaabcd",-     "aaAabcd "]-    [Just [" 0: b"],-     Just [" 0: A"]]-,-testRegex "[^az]" [caseless]-    ["aaaabcd",-     "aaAabcd "]-    [Just [" 0: b"],-     Just [" 0: b"]]-,-testRegex "\\000\\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037\\040\\041\\042\\043\\044\\045\\046\\047\\050\\051\\052\\053\\054\\055\\056\\057\\060\\061\\062\\063\\064\\065\\066\\067\\070\\071\\072\\073\\074\\075\\076\\077\\100\\101\\102\\103\\104\\105\\106\\107\\110\\111\\112\\113\\114\\115\\116\\117\\120\\121\\122\\123\\124\\125\\126\\127\\130\\131\\132\\133\\134\\135\\136\\137\\140\\141\\142\\143\\144\\145\\146\\147\\150\\151\\152\\153\\154\\155\\156\\157\\160\\161\\162\\163\\164\\165\\166\\167\\170\\171\\172\\173\\174\\175\\176\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377" []-    ["\\000\\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037\\040\\041\\042\\043\\044\\045\\046\\047\\050\\051\\052\\053\\054\\055\\056\\057\\060\\061\\062\\063\\064\\065\\066\\067\\070\\071\\072\\073\\074\\075\\076\\077\\100\\101\\102\\103\\104\\105\\106\\107\\110\\111\\112\\113\\114\\115\\116\\117\\120\\121\\122\\123\\124\\125\\126\\127\\130\\131\\132\\133\\134\\135\\136\\137\\140\\141\\142\\143\\144\\145\\146\\147\\150\\151\\152\\153\\154\\155\\156\\157\\160\\161\\162\\163\\164\\165\\166\\167\\170\\171\\172\\173\\174\\175\\176\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377"]-    [Just [" \\000\\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037\\040\\041\\042\\043\\044\\045\\046\\047\\050\\051\\052\\053\\054\\055\\056\\057\\060\\061\\062\\063\\064\\065\\066\\067\\070\\071\\072\\073\\074\\075\\076\\077\\100\\101\\102\\103\\104\\105\\106\\107\\110\\111\\112\\113\\114\\115\\116\\117\\120\\121\\122\\123\\124\\125\\126\\127\\130\\131\\132\\133\\134\\135\\136\\137\\140\\141\\142\\143\\144\\145\\146\\147\\150\\151\\152\\153\\154\\155\\156\\157\\160\\161\\162\\163\\164\\165\\166\\167\\170\\171\\172\\173\\174\\175\\176\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377"],-     Just [" 0: \\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\x7f\\x80\\x81\\x82\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8a\\x8b\\x8c\\x8d\\x8e\\x8f\\x90\\x91\\x92\\x93\\x94\\x95\\x96\\x97\\x98\\x99\\x9a\\x9b\\x9c\\x9d\\x9e\\x9f\\xa0\\xa1\\xa2\\xa3\\xa4\\xa5\\xa6\\xa7\\xa8\\xa9\\xaa\\xab\\xac\\xad\\xae\\xaf\\xb0\\xb1\\xb2\\xb3\\xb4\\xb5\\xb6\\xb7\\xb8\\xb9\\xba\\xbb\\xbc\\xbd\\xbe\\xbf\\xc0\\xc1\\xc2\\xc3\\xc4\\xc5\\xc6\\xc7\\xc8\\xc9\\xca\\xcb\\xcc\\xcd\\xce\\xcf\\xd0\\xd1\\xd2\\xd3\\xd4\\xd5\\xd6\\xd7\\xd8\\xd9\\xda\\xdb\\xdc\\xdd\\xde\\xdf\\xe0\\xe1\\xe2\\xe3\\xe4\\xe5\\xe6\\xe7\\xe8\\xe9\\xea\\xeb\\xec\\xed\\xee\\xef\\xf0\\xf1\\xf2\\xf3\\xf4\\xf5\\xf6\\xf7\\xf8\\xf9\\xfa\\xfb\\xfc\\xfd\\xfe\\xff"]]-,-testRegex "P[^*]TAIRE[^*]{1,6}?LL" []-    ["xxxxxxxxxxxPSTAIREISLLxxxxxxxxx"]-    [Just [" 0: PSTAIREISLL"]]-,-testRegex "P[^*]TAIRE[^*]{1,}?LL" []-    ["xxxxxxxxxxxPSTAIREISLLxxxxxxxxx"]-    [Just [" 0: PSTAIREISLL"]]-,-testRegex "(\\.\\d\\d[1-9]?)\\d+" []-    ["1.230003938",-     "1.875000282   ",-     "1.235  ",-     "",-     "/(\\.\\d\\d((?=0)|\\d(?=\\d)))/",-     "1.230003938      ",-     "1.875000282",-     "*** Failers ",-     "1.235 ",-     "",-     "/a(?)b/",-     "ab ",-     "",-     "/\\b(foo)\\s+(\\w+)/i",-     "Food is on the foo table",-     "",-     "/foo(.*)bar/",-     "The food is under the bar in the barn.",-     "",-     "/foo(.*?)bar/  ",-     "The food is under the bar in the barn."]-    [Just [" 0: .230003938"],-     Just [" 1: .23000393"],-     Just [" 2: .2300039"],-     Just [" 3: .230003"],-     Just [" 4: .23000"],-     Just [" 5: .2300"],-     Just [" 6: .230"],-     Just [" 0: .875000282"],-     Just [" 1: .87500028"],-     Just [" 2: .8750002"],-     Just [" 3: .875000"],-     Just [" 4: .87500"],-     Just [" 5: .8750"],-     Just [" 6: .875"],-     Just [" 0: .235"],-     Just ["/(\\.\\d\\d((?=0)|\\d(?=\\d)))/"],-     Just [" 0: .230"],-     Just [" 1: .23"],-     Just [" 0: .875"],-     Nothing,-     Nothing,-     Just ["/a(?)b/"],-     Just [" 0: ab"],-     Just ["/\\b(foo)\\s+(\\w+)/i"],-     Just [" 0: foo table"],-     Just [" 1: foo tabl"],-     Just [" 2: foo tab"],-     Just [" 3: foo ta"],-     Just [" 4: foo t"],-     Just ["/foo(.*)bar/"],-     Just [" 0: food is under the bar in the bar"],-     Just [" 1: food is under the bar"],-     Just ["/foo(.*?)bar/  "],-     Just [" 0: food is under the bar in the bar"],-     Just [" 1: food is under the bar"]]-,-testRegex "(.*)(\\d*)" []-    ["I have 2 numbers: 53147",-     "",-     "/(.*)(\\d+)/",-     "I have 2 numbers: 53147",-     "",-     "/(.*?)(\\d*)/",-     "I have 2 numbers: 53147"]-    [Just ["Matched, but too many subsidiary matches"],-     Just [" 0: I have 2 numbers: 53147"],-     Just [" 1: I have 2 numbers: 5314"],-     Just [" 2: I have 2 numbers: 531"],-     Just [" 3: I have 2 numbers: 53"],-     Just [" 4: I have 2 numbers: 5"],-     Just [" 5: I have 2 numbers: "],-     Just [" 6: I have 2 numbers:"],-     Just [" 7: I have 2 numbers"],-     Just [" 8: I have 2 number"],-     Just [" 9: I have 2 numbe"],-     Just ["10: I have 2 numb"],-     Just ["11: I have 2 num"],-     Just ["12: I have 2 nu"],-     Just ["13: I have 2 n"],-     Just ["14: I have 2 "],-     Just ["15: I have 2"],-     Just ["16: I have "],-     Just ["17: I have"],-     Just ["18: I hav"],-     Just ["19: I ha"],-     Just ["20: I h"],-     Just ["21: I "],-     Just ["/(.*)(\\d+)/"],-     Just [" 0: I have 2 numbers: 53147"],-     Just [" 1: I have 2 numbers: 5314"],-     Just [" 2: I have 2 numbers: 531"],-     Just [" 3: I have 2 numbers: 53"],-     Just [" 4: I have 2 numbers: 5"],-     Just [" 5: I have 2"],-     Just ["/(.*?)(\\d*)/"],-     Just ["Matched, but too many subsidiary matches"],-     Just [" 0: I have 2 numbers: 53147"],-     Just [" 1: I have 2 numbers: 5314"],-     Just [" 2: I have 2 numbers: 531"],-     Just [" 3: I have 2 numbers: 53"],-     Just [" 4: I have 2 numbers: 5"],-     Just [" 5: I have 2 numbers: "],-     Just [" 6: I have 2 numbers:"],-     Just [" 7: I have 2 numbers"],-     Just [" 8: I have 2 number"],-     Just [" 9: I have 2 numbe"],-     Just ["10: I have 2 numb"],-     Just ["11: I have 2 num"],-     Just ["12: I have 2 nu"],-     Just ["13: I have 2 n"],-     Just ["14: I have 2 "],-     Just ["15: I have 2"],-     Just ["16: I have "],-     Just ["17: I have"],-     Just ["18: I hav"],-     Just ["19: I ha"],-     Just ["20: I h"],-     Just ["21: I "]]-,-testRegex "(.*?)(\\d+)" []-    ["I have 2 numbers: 53147"]-    [Just [" 0: I have 2 numbers: 53147"],-     Just [" 1: I have 2 numbers: 5314"],-     Just [" 2: I have 2 numbers: 531"],-     Just [" 3: I have 2 numbers: 53"],-     Just [" 4: I have 2 numbers: 5"],-     Just [" 5: I have 2"]]-,-testRegex "(.*)(\\d+)$" []-    ["I have 2 numbers: 53147"]-    [Just [" 0: I have 2 numbers: 53147"]]-,-testRegex "(.*?)(\\d+)$" []-    ["I have 2 numbers: 53147"]-    [Just [" 0: I have 2 numbers: 53147"]]-,-testRegex "(.*)\\b(\\d+)$" []-    ["I have 2 numbers: 53147"]-    [Just [" 0: I have 2 numbers: 53147"]]-,-testRegex "(.*\\D)(\\d+)$" []-    ["I have 2 numbers: 53147"]-    [Just [" 0: I have 2 numbers: 53147"]]-,-testRegex "^\\D*(?!123)" []-    ["ABC123",-     "",-     "/^(\\D*)(?=\\d)(?!123)/",-     "ABC445",-     "*** Failers",-     "ABC123",-     "",-     "/^[W-]46]/",-     "W46]789 ",-     "-46]789",-     "*** Failers",-     "Wall",-     "Zebra",-     "42",-     "[abcd] ",-     "]abcd[",-     "",-     "/^[W-\\]46]/",-     "W46]789 ",-     "Wall",-     "Zebra",-     "Xylophone  ",-     "42",-     "[abcd] ",-     "]abcd[",-     "\\\\backslash ",-     "*** Failers",-     "-46]789",-     "well",-     "",-     "/\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d/",-     "01/01/2000"]-    [Just [" 0: AB"],-     Just [" 1: A"],-     Just [" 2: "],-     Just ["/^(\\D*)(?=\\d)(?!123)/"],-     Just [" 0: ABC"],-     Nothing,-     Nothing,-     Just ["/^[W-]46]/"],-     Just [" 0: W46]"],-     Just [" 0: -46]"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^[W-\\]46]/"],-     Just [" 0: W"],-     Just [" 0: W"],-     Just [" 0: Z"],-     Just [" 0: X"],-     Just [" 0: 4"],-     Just [" 0: ["],-     Just [" 0: ]"],-     Just [" 0: \\"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d/"],-     Just [" 0: 01/01/2000"]]-,-testRegex "word (?:[a-zA-Z0-9]+ ){0,10}otherword" []-    ["word cat dog elephant mussel cow horse canary baboon snake shark otherword",-     "word cat dog elephant mussel cow horse canary baboon snake shark"]-    [Just [" 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword"],-     Nothing]-,-testRegex "word (?:[a-zA-Z0-9]+ ){0,300}otherword" []-    ["word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope"]-    [Nothing]-,-testRegex "^(a){0,0}" []-    ["bcd",-     "abc",-     "aab     "]-    [Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "]]-,-testRegex "^(a){0,1}" []-    ["bcd",-     "abc",-     "aab  "]-    [Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: a"],-     Just [" 1: "]]-,-testRegex "^(a){0,2}" []-    ["bcd",-     "abc",-     "aab  "]-    [Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 2: "]]-,-testRegex "^(a){0,3}" []-    ["bcd",-     "abc",-     "aab",-     "aaa   "]-    [Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 2: "],-     Just [" 0: aaa"],-     Just [" 1: aa"],-     Just [" 2: a"],-     Just [" 3: "]]-,-testRegex "^(a){0,}" []-    ["bcd",-     "abc",-     "aab",-     "aaa",-     "aaaaaaaa    "]-    [Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 2: "],-     Just [" 0: aaa"],-     Just [" 1: aa"],-     Just [" 2: a"],-     Just [" 3: "],-     Just [" 0: aaaaaaaa"],-     Just [" 1: aaaaaaa"],-     Just [" 2: aaaaaa"],-     Just [" 3: aaaaa"],-     Just [" 4: aaaa"],-     Just [" 5: aaa"],-     Just [" 6: aa"],-     Just [" 7: a"],-     Just [" 8: "]]-,-testRegex "^(a){1,1}" []-    ["bcd",-     "abc",-     "aab  "]-    [Nothing,-     Just [" 0: a"],-     Just [" 0: a"]]-,-testRegex "^(a){1,2}" []-    ["bcd",-     "abc",-     "aab  "]-    [Nothing,-     Just [" 0: a"],-     Just [" 0: aa"],-     Just [" 1: a"]]-,-testRegex "^(a){1,3}" []-    ["bcd",-     "abc",-     "aab",-     "aaa   "]-    [Nothing,-     Just [" 0: a"],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 0: aaa"],-     Just [" 1: aa"],-     Just [" 2: a"]]-,-testRegex "^(a){1,}" []-    ["bcd",-     "abc",-     "aab",-     "aaa",-     "aaaaaaaa    "]-    [Nothing,-     Just [" 0: a"],-     Just [" 0: aa"],-     Just [" 1: a"],-     Just [" 0: aaa"],-     Just [" 1: aa"],-     Just [" 2: a"],-     Just [" 0: aaaaaaaa"],-     Just [" 1: aaaaaaa"],-     Just [" 2: aaaaaa"],-     Just [" 3: aaaaa"],-     Just [" 4: aaaa"],-     Just [" 5: aaa"],-     Just [" 6: aa"],-     Just [" 7: a"]]-,-testRegex ".*\\.gif" []-    ["borfle\\nbib.gif\\nno"]-    [Just [" 0: bib.gif"]]-,-testRegex ".{0,}\\.gif" []-    ["borfle\\nbib.gif\\nno"]-    [Just [" 0: bib.gif"]]-,-testRegex ".*\\.gif" [ERROR]-    ["borfle\\nbib.gif\\nno"]-    [Just [" 0: bib.gif"]]-,-testRegex ".*\\.gif" [ERROR]-    ["borfle\\nbib.gif\\nno"]-    [Just [" 0: borfle\\x0abib.gif"]]-,-testRegex ".*\\.gif" [ERROR]-    ["borfle\\nbib.gif\\nno",-     "",-     "/.*$/",-     "borfle\\nbib.gif\\nno"]-    [Just [" 0: borfle\\x0abib.gif"],-     Just ["/.*$/"],-     Just [" 0: no"]]-,-testRegex ".*$" [ERROR]-    ["borfle\\nbib.gif\\nno"]-    [Just [" 0: borfle"]]-,-testRegex ".*$" [ERROR]-    ["borfle\\nbib.gif\\nno"]-    [Just [" 0: borfle\\x0abib.gif\\x0ano"]]-,-testRegex ".*$" [ERROR]-    ["borfle\\nbib.gif\\nno",-     "",-     "/.*$/",-     "borfle\\nbib.gif\\nno\\n"]-    [Just [" 0: borfle\\x0abib.gif\\x0ano"],-     Just [" 1: borfle\\x0abib.gif"],-     Just [" 2: borfle"],-     Just ["/.*$/"],-     Just [" 0: no"]]-,-testRegex ".*$" [ERROR]-    ["borfle\\nbib.gif\\nno\\n"]-    [Just [" 0: borfle"]]-,-testRegex ".*$" [ERROR]-    ["borfle\\nbib.gif\\nno\\n"]-    [Just [" 0: borfle\\x0abib.gif\\x0ano\\x0a"],-     Just [" 1: borfle\\x0abib.gif\\x0ano"]]-,-testRegex ".*$" [ERROR]-    ["borfle\\nbib.gif\\nno\\n",-     "",-     "/(.*X|^B)/",-     "abcde\\n1234Xyz",-     "BarFoo ",-     "*** Failers",-     "abcde\\nBar  "]-    [Just [" 0: borfle\\x0abib.gif\\x0ano\\x0a"],-     Just [" 1: borfle\\x0abib.gif\\x0ano"],-     Just [" 2: borfle\\x0abib.gif"],-     Just [" 3: borfle"],-     Just ["/(.*X|^B)/"],-     Just [" 0: 1234X"],-     Just [" 0: B"],-     Nothing,-     Nothing]-,-testRegex "(.*X|^B)" [ERROR]-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "abcde\\nBar  "]-    [Just [" 0: 1234X"],-     Just [" 0: B"],-     Just [" 0: B"]]-,-testRegex "(.*X|^B)" [ERROR]-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "*** Failers",-     "abcde\\nBar  "]-    [Just [" 0: abcde\\x0a1234X"],-     Just [" 0: B"],-     Nothing,-     Nothing]-,-testRegex "(.*X|^B)" [ERROR]-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "abcde\\nBar  "]-    [Just [" 0: abcde\\x0a1234X"],-     Just [" 0: B"],-     Just [" 0: B"]]-,-testRegex "(?s)(.*X|^B)" []-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "*** Failers ",-     "abcde\\nBar  "]-    [Just [" 0: abcde\\x0a1234X"],-     Just [" 0: B"],-     Nothing,-     Nothing]-,-testRegex "(?s:.*X|^B)" []-    ["abcde\\n1234Xyz",-     "BarFoo ",-     "*** Failers ",-     "abcde\\nBar  "]-    [Just [" 0: abcde\\x0a1234X"],-     Just [" 0: B"],-     Nothing,-     Nothing]-,-testRegex "^.*B" []-    ["**** Failers",-     "abc\\nB",-     "",-     "/(?s)^.*B/",-     "abc\\nB"]-    [Nothing,-     Nothing,-     Just ["/(?s)^.*B/"],-     Just [" 0: abc\\x0aB"]]-,-testRegex "(?m)^.*B" []-    ["abc\\nB",-     "",-     "/(?ms)^.*B/",-     "abc\\nB"]-    [Just [" 0: B"],-     Just ["/(?ms)^.*B/"],-     Just [" 0: abc\\x0aB"]]-,-testRegex "(?ms)^B" []-    ["abc\\nB"]-    [Just [" 0: B"]]-,-testRegex "(?s)B$" []-    ["B\\n"]-    [Just [" 0: B"]]-,-testRegex "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" []-    ["123456654321",-     "",-     "/^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d/",-     "123456654321 "]-    [Just [" 0: 123456654321"],-     Just ["/^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d/"],-     Just [" 0: 123456654321"]]-,-testRegex "^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d]" []-    ["123456654321",-     "",-     "/^[abc]{12}/",-     "abcabcabcabc",-     "",-     "/^[a-c]{12}/",-     "abcabcabcabc",-     "",-     "/^(a|b|c){12}/",-     "abcabcabcabc "]-    [Just [" 0: 123456654321"],-     Just ["/^[abc]{12}/"],-     Just [" 0: abcabcabcabc"],-     Just ["/^[a-c]{12}/"],-     Just [" 0: abcabcabcabc"],-     Just ["/^(a|b|c){12}/"],-     Just [" 0: abcabcabcabc"]]-,-testRegex "^[abcdefghijklmnopqrstuvwxy0123456789]" []-    ["n",-     "*** Failers ",-     "z "]-    [Just [" 0: n"],-     Nothing,-     Nothing]-,-testRegex "abcde{0,0}" []-    ["abcd",-     "*** Failers",-     "abce  "]-    [Just [" 0: abcd"],-     Nothing,-     Nothing]-,-testRegex "ab[cd]{0,0}e" []-    ["abe",-     "*** Failers",-     "abcde ",-     "",-     "/ab(c){0,0}d/",-     "abd",-     "*** Failers",-     "abcd   "]-    [Just [" 0: abe"],-     Nothing,-     Nothing,-     Just ["/ab(c){0,0}d/"],-     Just [" 0: abd"],-     Nothing,-     Nothing]-,-testRegex "a(b*)" []-    ["a",-     "ab",-     "abbbb",-     "*** Failers",-     "bbbbb    ",-     "",-     "/ab\\d{0}e/",-     "abe",-     "*** Failers",-     "ab1e   ",-     "",-     "/\"([^\\\\\"]+|\\\\.)*\"/",-     "the \\\"quick\\\" brown fox",-     "\\\"the \\\\\\\"quick\\\\\\\" brown fox\\\" "]-    [Just [" 0: a"],-     Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 0: abbbb"],-     Just [" 1: abbb"],-     Just [" 2: abb"],-     Just [" 3: ab"],-     Just [" 4: a"],-     Just [" 0: a"],-     Nothing,-     Just ["/ab\\d{0}e/"],-     Just [" 0: abe"],-     Nothing,-     Nothing,-     Just ["/\"([^\\\\\"]+|\\\\.)*\"/"],-     Just [" 0: \"quick\""],-     Just [" 0: \"the \\\"quick\\\" brown fox\""]]-,-testRegex ".*?" [ERROR]-    ["abc",-     "",-     "/\\b/g+",-     "abc "]-    [Just [" 0: abc"],-     Just [" 0+ "],-     Just [" 1: ab"],-     Just [" 2: a"],-     Just [" 3: "],-     Just [" 0: "],-     Just [" 0+ "],-     Just ["/\\b/g+"],-     Just [" 0: "],-     Just [" 0+ abc"],-     Just [" 0: "],-     Just [" 0+ "]]-,-testRegex "\\b" [ERROR]-    ["abc "]-    [Just [" 0: "],-     Just [" 0+ abc"],-     Just [" 0: "],-     Just [" 0+ "]]-,-testRegex "" [ERROR]-    ["abc"]-    [Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "]]-,-testRegex "<tr([\\w\\W\\s\\d][^<>]{0,})><TD([\\w\\W\\s\\d][^<>]{0,})>([\\d]{0,}\\.)(.*)((<BR>([\\w\\W\\s\\d][^<>]{0,})|[\\s]{0,}))<\\/a><\\/TD><TD([\\w\\W\\s\\d][^<>]{0,})>([\\w\\W\\s\\d][^<>]{0,})<\\/TD><TD([\\w\\W\\s\\d][^<>]{0,})>([\\w\\W\\s\\d][^<>]{0,})<\\/TD><\\/TR>" [ERROR]-    ["<TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>"]-    [Just [" 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>"]]-,-testRegex "a[^a]b" []-    ["acb",-     "a\\nb",-     "",-     "/a.b/",-     "acb",-     "*** Failers ",-     "a\\nb   ",-     "",-     "/a[^a]b/s",-     "acb",-     "a\\nb  ",-     "",-     "/a.b/s",-     "acb",-     "a\\nb  "]-    [Just [" 0: acb"],-     Just [" 0: a\\x0ab"],-     Just ["/a.b/"],-     Just [" 0: acb"],-     Nothing,-     Nothing,-     Just ["/a[^a]b/s"],-     Just [" 0: acb"],-     Just [" 0: a\\x0ab"],-     Just ["/a.b/s"],-     Just [" 0: acb"],-     Just [" 0: a\\x0ab"]]-,-testRegex "^(b+?|a){1,2}?c" []-    ["bac",-     "bbac",-     "bbbac",-     "bbbbac",-     "bbbbbac "]-    [Just [" 0: bac"],-     Just [" 0: bbac"],-     Just [" 0: bbbac"],-     Just [" 0: bbbbac"],-     Just [" 0: bbbbbac"]]-,-testRegex "^(b+|a){1,2}?c" []-    ["bac",-     "bbac",-     "bbbac",-     "bbbbac",-     "bbbbbac ",-     "",-     "/(?!\\A)x/m",-     "x\\nb\\n",-     "a\\bx\\n  ",-     "",-     "/\\x0{ab}/",-     "\\0{ab} "]-    [Just [" 0: bac"],-     Just [" 0: bbac"],-     Just [" 0: bbbac"],-     Just [" 0: bbbbac"],-     Just [" 0: bbbbbac"],-     Just ["/(?!\\A)x/m"],-     Nothing,-     Just [" 0: x"],-     Just ["/\\x0{ab}/"],-     Just [" 0: \\x00{ab}"]]-,-testRegex "(A|B)*?CD" []-    ["CD ",-     "",-     "/(A|B)*CD/",-     "CD "]-    [Just [" 0: CD"],-     Just ["/(A|B)*CD/"],-     Just [" 0: CD"]]-,-testRegex "(?<!bar)foo" []-    ["foo",-     "catfood",-     "arfootle",-     "rfoosh",-     "*** Failers",-     "barfoo",-     "towbarfoo"]-    [Just [" 0: foo"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\w{3}(?<!bar)foo" []-    ["catfood",-     "*** Failers",-     "foo",-     "barfoo",-     "towbarfoo"]-    [Just [" 0: catfoo"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<=(foo)a)bar" []-    ["fooabar",-     "*** Failers",-     "bar",-     "foobbar",-     "",-     "/\\Aabc\\z/m",-     "abc",-     "*** Failers",-     "abc\\n   ",-     "qqq\\nabc",-     "abc\\nzzz",-     "qqq\\nabc\\nzzz"]-    [Just [" 0: bar"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/\\Aabc\\z/m"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?>.*/)foo" [ERROR]-    ["/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/"]-    [Nothing]-,-testRegex "(?>.*/)foo" [ERROR]-    ["/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo"]-    [Just [" 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo"]]-,-testRegex "(?>(\\.\\d\\d[1-9]?))\\d+" []-    ["1.230003938",-     "1.875000282",-     "*** Failers ",-     "1.235 "]-    [Just [" 0: .230003938"],-     Just [" 1: .23000393"],-     Just [" 2: .2300039"],-     Just [" 3: .230003"],-     Just [" 4: .23000"],-     Just [" 5: .2300"],-     Just [" 6: .230"],-     Just [" 0: .875000282"],-     Just [" 1: .87500028"],-     Just [" 2: .8750002"],-     Just [" 3: .875000"],-     Just [" 4: .87500"],-     Just [" 5: .8750"],-     Nothing,-     Nothing]-,-testRegex "^((?>\\w+)|(?>\\s+))*$" []-    ["now is the time for all good men to come to the aid of the party",-     "*** Failers",-     "this is not a line with only words and spaces!",-     "",-     "/(\\d+)(\\w)/",-     "12345a",-     "12345+ "]-    [Just [" 0: now is the time for all good men to come to the aid of the party"],-     Nothing,-     Nothing,-     Just ["/(\\d+)(\\w)/"],-     Just [" 0: 12345a"],-     Just [" 1: 12345"],-     Just [" 2: 1234"],-     Just [" 3: 123"],-     Just [" 4: 12"],-     Just [" 0: 12345"],-     Just [" 1: 1234"],-     Just [" 2: 123"],-     Just [" 3: 12"]]-,-testRegex "((?>\\d+))(\\w)" []-    ["12345a",-     "*** Failers",-     "12345+ "]-    [Just [" 0: 12345a"],-     Nothing,-     Nothing]-,-testRegex "(?>a+)b" []-    ["aaab"]-    [Just [" 0: aaab"]]-,-testRegex "((?>a+)b)" []-    ["aaab"]-    [Just [" 0: aaab"]]-,-testRegex "(?>(a+))b" []-    ["aaab"]-    [Just [" 0: aaab"]]-,-testRegex "(?>b)+" []-    ["aaabbbccc"]-    [Just [" 0: bbb"],-     Just [" 1: bb"],-     Just [" 2: b"]]-,-testRegex "(?>a+|b+|c+)*c" []-    ["aaabbbbccccd",-     "",-     "/(a+|b+|c+)*c/",-     "aaabbbbccccd"]-    [Just [" 0: aaabbbbcccc"],-     Just [" 1: aaabbbbc"],-     Just ["/(a+|b+|c+)*c/"],-     Just [" 0: aaabbbbcccc"],-     Just [" 1: aaabbbbccc"],-     Just [" 2: aaabbbbcc"],-     Just [" 3: aaabbbbc"]]-,-testRegex "((?>[^()]+)|\\([^()]*\\))+" []-    ["((abc(ade)ufh()()x",-     "",-     "/\\(((?>[^()]+)|\\([^()]+\\))+\\)/ ",-     "(abc)",-     "(abc(def)xyz)",-     "*** Failers",-     "((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   "]-    [Just [" 0: abc(ade)ufh()()x"],-     Just [" 1: abc(ade)ufh()()"],-     Just [" 2: abc(ade)ufh()"],-     Just [" 3: abc(ade)ufh"],-     Just [" 4: abc(ade)"],-     Just [" 5: abc"],-     Just ["/\\(((?>[^()]+)|\\([^()]+\\))+\\)/ "],-     Just [" 0: (abc)"],-     Just [" 0: (abc(def)xyz)"],-     Nothing,-     Nothing]-,-testRegex "a(?-i)b" [caseless]-    ["ab",-     "Ab",-     "*** Failers ",-     "aB",-     "AB",-     "",-     "/(a (?x)b c)d e/",-     "a bcd e",-     "*** Failers",-     "a b cd e",-     "abcd e   ",-     "a bcde ",-     "",-     "/(a b(?x)c d (?-x)e f)/",-     "a bcde f",-     "*** Failers",-     "abcdef  "]-    [Just [" 0: ab"],-     Just [" 0: Ab"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(a (?x)b c)d e/"],-     Just [" 0: a bcd e"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/(a b(?x)c d (?-x)e f)/"],-     Just [" 0: a bcde f"],-     Nothing,-     Nothing]-,-testRegex "(a(?i)b)c" []-    ["abc",-     "aBc",-     "*** Failers",-     "abC",-     "aBC  ",-     "Abc",-     "ABc",-     "ABC",-     "AbC",-     "",-     "/a(?i:b)c/",-     "abc",-     "aBc",-     "*** Failers ",-     "ABC",-     "abC",-     "aBC",-     "",-     "/a(?i:b)*c/",-     "aBc",-     "aBBc",-     "*** Failers ",-     "aBC",-     "aBBC",-     "",-     "/a(?=b(?i)c)\\w\\wd/",-     "abcd",-     "abCd",-     "*** Failers",-     "aBCd",-     "abcD     ",-     "",-     "/(?s-i:more.*than).*million/i",-     "more than million",-     "more than MILLION",-     "more \\n than Million ",-     "*** Failers",-     "MORE THAN MILLION    ",-     "more \\n than \\n million "]-    [Just [" 0: abc"],-     Just [" 0: aBc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/a(?i:b)c/"],-     Just [" 0: abc"],-     Just [" 0: aBc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/a(?i:b)*c/"],-     Just [" 0: aBc"],-     Just [" 0: aBBc"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/a(?=b(?i)c)\\w\\wd/"],-     Just [" 0: abcd"],-     Just [" 0: abCd"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?s-i:more.*than).*million/i"],-     Just [" 0: more than million"],-     Just [" 0: more than MILLION"],-     Just [" 0: more \\x0a than Million"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?:(?s-i)more.*than).*million" [caseless]-    ["more than million",-     "more than MILLION",-     "more \\n than Million ",-     "*** Failers",-     "MORE THAN MILLION    ",-     "more \\n than \\n million ",-     "",-     "/(?>a(?i)b+)+c/ ",-     "abc",-     "aBbc",-     "aBBc ",-     "*** Failers",-     "Abc",-     "abAb    ",-     "abbC ",-     "",-     "/(?=a(?i)b)\\w\\wc/",-     "abc",-     "aBc",-     "*** Failers",-     "Ab ",-     "abC",-     "aBC     ",-     "",-     "/(?<=a(?i)b)(\\w\\w)c/",-     "abxxc",-     "aBxxc",-     "*** Failers",-     "Abxxc",-     "ABxxc",-     "abxxC      "]-    [Just [" 0: more than million"],-     Just [" 0: more than MILLION"],-     Just [" 0: more \\x0a than Million"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?>a(?i)b+)+c/ "],-     Just [" 0: abc"],-     Just [" 0: aBbc"],-     Just [" 0: aBBc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?=a(?i)b)\\w\\wc/"],-     Just [" 0: abc"],-     Just [" 0: aBc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?<=a(?i)b)(\\w\\w)c/"],-     Just [" 0: xxc"],-     Just [" 0: xxc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(?(?=abc)\\w{3}:|\\d\\d)$" []-    ["abc:",-     "12",-     "*** Failers",-     "123",-     "xyz    "]-    [Just [" 0: abc:"],-     Just [" 0: 12"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^(?(?!abc)\\d\\d|\\w{3}:)$" []-    ["abc:",-     "12",-     "*** Failers",-     "123",-     "xyz    ",-     "",-     "/(?(?<=foo)bar|cat)/",-     "foobar",-     "cat",-     "fcat",-     "focat   ",-     "*** Failers",-     "foocat  "]-    [Just [" 0: abc:"],-     Just [" 0: 12"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?(?<=foo)bar|cat)/"],-     Just [" 0: bar"],-     Just [" 0: cat"],-     Just [" 0: cat"],-     Just [" 0: cat"],-     Nothing,-     Nothing]-,-testRegex "(?(?<!foo)cat|bar)" []-    ["foobar",-     "cat",-     "fcat",-     "focat   ",-     "*** Failers",-     "foocat  "]-    [Just [" 0: bar"],-     Just [" 0: cat"],-     Just [" 0: cat"],-     Just [" 0: cat"],-     Nothing,-     Nothing]-,-testRegex "(?>a*)*" []-    ["a",-     "aa",-     "aaaa",-     "",-     "/(abc|)+/",-     "abc",-     "abcabc",-     "abcabcabc",-     "xyz      "]-    [Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aa"],-     Just [" 1: "],-     Just [" 0: aaaa"],-     Just [" 1: "],-     Just ["/(abc|)+/"],-     Just [" 0: abc"],-     Just [" 1: "],-     Just [" 0: abcabc"],-     Just [" 1: abc"],-     Just [" 2: "],-     Just [" 0: abcabcabc"],-     Just [" 1: abcabc"],-     Just [" 2: abc"],-     Just [" 3: "],-     Just [" 0: "]]-,-testRegex "([a]*)*" []-    ["a",-     "aaaaa ",-     "",-     "/([ab]*)*/",-     "a",-     "b",-     "ababab",-     "aaaabcde",-     "bbbb    ",-     "",-     "/([^a]*)*/",-     "b",-     "bbbb",-     "aaa   ",-     "",-     "/([^ab]*)*/",-     "cccc",-     "abab  ",-     "",-     "/([a]*?)*/",-     "a",-     "aaaa ",-     "",-     "/([ab]*?)*/",-     "a",-     "b",-     "abab",-     "baba   ",-     "",-     "/([^a]*?)*/",-     "b",-     "bbbb",-     "aaa   ",-     "",-     "/([^ab]*?)*/",-     "c",-     "cccc",-     "baba   ",-     "",-     "/(?>a*)*/",-     "a",-     "aaabcde ",-     "",-     "/((?>a*))*/",-     "aaaaa",-     "aabbaa ",-     "",-     "/((?>a*?))*/",-     "aaaaa",-     "aabbaa "]-    [Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aaaaa"],-     Just [" 1: aaaa"],-     Just [" 2: aaa"],-     Just [" 3: aa"],-     Just [" 4: a"],-     Just [" 5: "],-     Just ["/([ab]*)*/"],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: b"],-     Just [" 1: "],-     Just [" 0: ababab"],-     Just [" 1: ababa"],-     Just [" 2: abab"],-     Just [" 3: aba"],-     Just [" 4: ab"],-     Just [" 5: a"],-     Just [" 6: "],-     Just [" 0: aaaab"],-     Just [" 1: aaaa"],-     Just [" 2: aaa"],-     Just [" 3: aa"],-     Just [" 4: a"],-     Just [" 5: "],-     Just [" 0: bbbb"],-     Just [" 1: bbb"],-     Just [" 2: bb"],-     Just [" 3: b"],-     Just [" 4: "],-     Just ["/([^a]*)*/"],-     Just [" 0: b"],-     Just [" 1: "],-     Just [" 0: bbbb"],-     Just [" 1: bbb"],-     Just [" 2: bb"],-     Just [" 3: b"],-     Just [" 4: "],-     Just [" 0: "],-     Just ["/([^ab]*)*/"],-     Just [" 0: cccc"],-     Just [" 1: ccc"],-     Just [" 2: cc"],-     Just [" 3: c"],-     Just [" 4: "],-     Just [" 0: "],-     Just ["/([a]*?)*/"],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 4: "],-     Just ["/([ab]*?)*/"],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: b"],-     Just [" 1: "],-     Just [" 0: abab"],-     Just [" 1: aba"],-     Just [" 2: ab"],-     Just [" 3: a"],-     Just [" 4: "],-     Just [" 0: baba"],-     Just [" 1: bab"],-     Just [" 2: ba"],-     Just [" 3: b"],-     Just [" 4: "],-     Just ["/([^a]*?)*/"],-     Just [" 0: b"],-     Just [" 1: "],-     Just [" 0: bbbb"],-     Just [" 1: bbb"],-     Just [" 2: bb"],-     Just [" 3: b"],-     Just [" 4: "],-     Just [" 0: "],-     Just ["/([^ab]*?)*/"],-     Just [" 0: c"],-     Just [" 1: "],-     Just [" 0: cccc"],-     Just [" 1: ccc"],-     Just [" 2: cc"],-     Just [" 3: c"],-     Just [" 4: "],-     Just [" 0: "],-     Just ["/(?>a*)*/"],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: aaa"],-     Just [" 1: "],-     Just ["/((?>a*))*/"],-     Just [" 0: aaaaa"],-     Just [" 1: "],-     Just [" 0: aa"],-     Just [" 1: "],-     Just ["/((?>a*?))*/"],-     Just [" 0: aaaaa"],-     Just [" 1: "],-     Just [" 0: aa"],-     Just [" 1: "]]-,-testRegex "(?(?=[^a-z]+[a-z])  \\d{2}-[a-z]{3}-\\d{2}  |  \\d{2}-\\d{2}-\\d{2} ) " [ERROR]-    ["12-sep-98",-     "12-09-98",-     "*** Failers",-     "sep-12-98",-     "",-     "/(?i:saturday|sunday)/",-     "saturday",-     "sunday",-     "Saturday",-     "Sunday",-     "SATURDAY",-     "SUNDAY",-     "SunDay",-     "",-     "/(a(?i)bc|BB)x/",-     "abcx",-     "aBCx",-     "bbx",-     "BBx",-     "*** Failers",-     "abcX",-     "aBCX",-     "bbX",-     "BBX               "]-    [Just [" 0: 12-sep-98"],-     Just [" 0: 12-09-98"],-     Nothing,-     Nothing,-     Just ["/(?i:saturday|sunday)/"],-     Just [" 0: saturday"],-     Just [" 0: sunday"],-     Just [" 0: Saturday"],-     Just [" 0: Sunday"],-     Just [" 0: SATURDAY"],-     Just [" 0: SUNDAY"],-     Just [" 0: SunDay"],-     Just ["/(a(?i)bc|BB)x/"],-     Just [" 0: abcx"],-     Just [" 0: aBCx"],-     Just [" 0: bbx"],-     Just [" 0: BBx"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^([ab](?i)[cd]|[ef])" []-    ["ac",-     "aC",-     "bD",-     "elephant",-     "Europe ",-     "frog",-     "France",-     "*** Failers",-     "Africa     "]-    [Just [" 0: ac"],-     Just [" 0: aC"],-     Just [" 0: bD"],-     Just [" 0: e"],-     Just [" 0: E"],-     Just [" 0: f"],-     Just [" 0: F"],-     Nothing,-     Nothing]-,-testRegex "^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)" []-    ["ab",-     "aBd",-     "xy",-     "xY",-     "zebra",-     "Zambesi",-     "*** Failers",-     "aCD  ",-     "XY  "]-    [Just [" 0: ab"],-     Just [" 0: aBd"],-     Just [" 0: xy"],-     Just [" 0: xY"],-     Just [" 0: z"],-     Just [" 0: Z"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<=foo\\n)^bar" [ERROR]-    ["foo\\nbar",-     "*** Failers",-     "bar",-     "baz\\nbar   "]-    [Just [" 0: bar"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<=(?<!foo)bar)baz" []-    ["barbaz",-     "barbarbaz ",-     "koobarbaz ",-     "*** Failers",-     "baz",-     "foobarbaz "]-    [Just [" 0: baz"],-     Just [" 0: baz"],-     Just [" 0: baz"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "The following tests are taken from the Perl 5.005 test suite; some of them" []-    ["/are compatible with 5.004, but I'd rather not have to sort them out./"]-    [Just ["/are compatible with 5.004, but I'd rather not have to sort them out./"],-     Nothing]-,-testRegex "abc" []-    ["abc",-     "xabcy",-     "ababc",-     "*** Failers",-     "xbc",-     "axc",-     "abx"]-    [Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "ab*c" []-    ["abc"]-    [Just [" 0: abc"]]-,-testRegex "ab*bc" []-    ["abc",-     "abbc",-     "abbbbc"]-    [Just [" 0: abc"],-     Just [" 0: abbc"],-     Just [" 0: abbbbc"]]-,-testRegex ".{1}" []-    ["abbbbc"]-    [Just [" 0: a"]]-,-testRegex ".{3,4}" []-    ["abbbbc"]-    [Just [" 0: abbb"],-     Just [" 1: abb"]]-,-testRegex "ab{0,}bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,-testRegex "ab+bc" []-    ["abbc",-     "*** Failers",-     "abc",-     "abq"]-    [Just [" 0: abbc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "ab{1,}bc" []-    []-    []-,-testRegex "ab+bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,-testRegex "ab{1,}bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,-testRegex "ab{1,3}bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,-testRegex "ab{3,4}bc" []-    ["abbbbc"]-    [Just [" 0: abbbbc"]]-,-testRegex "ab{4,5}bc" []-    ["*** Failers",-     "abq",-     "abbbbc"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "ab?bc" []-    ["abbc",-     "abc"]-    [Just [" 0: abbc"],-     Just [" 0: abc"]]-,-testRegex "ab{0,1}bc" []-    ["abc"]-    [Just [" 0: abc"]]-,-testRegex "ab?bc" []-    []-    []-,-testRegex "ab?c" []-    ["abc"]-    [Just [" 0: abc"]]-,-testRegex "ab{0,1}c" []-    ["abc"]-    [Just [" 0: abc"]]-,-testRegex "^abc$" []-    ["abc",-     "*** Failers",-     "abbbbc",-     "abcc"]-    [Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^abc" []-    ["abcc"]-    [Just [" 0: abc"]]-,-testRegex "^abc$" []-    []-    []-,-testRegex "abc$" []-    ["aabc",-     "*** Failers",-     "aabc",-     "aabcd"]-    [Just [" 0: abc"],-     Nothing,-     Just [" 0: abc"],-     Nothing]-,-testRegex "^" []-    ["abc"]-    [Just [" 0: "]]-,-testRegex "$" []-    ["abc"]-    [Just [" 0: "]]-,-testRegex "a.c" []-    ["abc",-     "axc"]-    [Just [" 0: abc"],-     Just [" 0: axc"]]-,-testRegex "a.*c" []-    ["axyzc"]-    [Just [" 0: axyzc"]]-,-testRegex "a[bc]d" []-    ["abd",-     "*** Failers",-     "axyzd",-     "abc"]-    [Just [" 0: abd"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a[b-d]e" []-    ["ace"]-    [Just [" 0: ace"]]-,-testRegex "a[b-d]" []-    ["aac"]-    [Just [" 0: ac"]]-,-testRegex "a[-b]" []-    ["a-"]-    [Just [" 0: a-"]]-,-testRegex "a[b-]" []-    ["a-"]-    [Just [" 0: a-"]]-,-testRegex "a]" []-    ["a]"]-    [Just [" 0: a]"]]-,-testRegex "a[]]b" []-    ["a]b"]-    [Just [" 0: a]b"]]-,-testRegex "a[^bc]d" []-    ["aed",-     "*** Failers",-     "abd",-     "abd"]-    [Just [" 0: aed"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a[^-b]c" []-    ["adc"]-    [Just [" 0: adc"]]-,-testRegex "a[^]b]c" []-    ["adc",-     "*** Failers",-     "a-c",-     "a]c"]-    [Just [" 0: adc"],-     Nothing,-     Just [" 0: a-c"],-     Nothing]-,-testRegex "\\ba\\b" []-    ["a-",-     "-a",-     "-a-"]-    [Just [" 0: a"],-     Just [" 0: a"],-     Just [" 0: a"]]-,-testRegex "\\by\\b" []-    ["*** Failers",-     "xy",-     "yz",-     "xyz"]-    [Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\Ba\\B" []-    ["*** Failers",-     "a-",-     "-a",-     "-a-"]-    [Just [" 0: a"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\By\\b" []-    ["xy"]-    [Just [" 0: y"]]-,-testRegex "\\by\\B" []-    ["yz"]-    [Just [" 0: y"]]-,-testRegex "\\By\\B" []-    ["xyz"]-    [Just [" 0: y"]]-,-testRegex "\\w" []-    ["a"]-    [Just [" 0: a"]]-,-testRegex "\\W" []-    ["-",-     "*** Failers",-     "-",-     "a"]-    [Just [" 0: -"],-     Just [" 0: *"],-     Just [" 0: -"],-     Nothing]-,-testRegex "a\\sb" []-    ["a b"]-    [Just [" 0: a b"]]-,-testRegex "a\\Sb" []-    ["a-b",-     "*** Failers",-     "a-b",-     "a b"]-    [Just [" 0: a-b"],-     Nothing,-     Just [" 0: a-b"],-     Nothing]-,-testRegex "\\d" []-    ["1"]-    [Just [" 0: 1"]]-,-testRegex "\\D" []-    ["-",-     "*** Failers",-     "-",-     "1"]-    [Just [" 0: -"],-     Just [" 0: *"],-     Just [" 0: -"],-     Nothing]-,-testRegex "[\\w]" []-    ["a"]-    [Just [" 0: a"]]-,-testRegex "[\\W]" []-    ["-",-     "*** Failers",-     "-",-     "a"]-    [Just [" 0: -"],-     Just [" 0: *"],-     Just [" 0: -"],-     Nothing]-,-testRegex "a[\\s]b" []-    ["a b"]-    [Just [" 0: a b"]]-,-testRegex "a[\\S]b" []-    ["a-b",-     "*** Failers",-     "a-b",-     "a b"]-    [Just [" 0: a-b"],-     Nothing,-     Just [" 0: a-b"],-     Nothing]-,-testRegex "[\\d]" []-    ["1"]-    [Just [" 0: 1"]]-,-testRegex "[\\D]" []-    ["-",-     "*** Failers",-     "-",-     "1"]-    [Just [" 0: -"],-     Just [" 0: *"],-     Just [" 0: -"],-     Nothing]-,-testRegex "ab|cd" []-    ["abc",-     "abcd"]-    [Just [" 0: ab"],-     Just [" 0: ab"]]-,-testRegex "()ef" []-    ["def"]-    [Just [" 0: ef"]]-,-testRegex "$b" []-    []-    []-,-testRegex "a\\(b" []-    ["a(b"]-    [Just [" 0: a(b"]]-,-testRegex "a\\(*b" []-    ["ab",-     "a((b"]-    [Just [" 0: ab"],-     Just [" 0: a((b"]]-,-testRegex "a\\\\b" []-    ["a\\b"]-    [Nothing]-,-testRegex "((a))" []-    ["abc"]-    [Just [" 0: a"]]-,-testRegex "(a)b(c)" []-    ["abc"]-    [Just [" 0: abc"]]-,-testRegex "a+b+c" []-    ["aabbabc"]-    [Just [" 0: abc"]]-,-testRegex "a{1,}b{1,}c" []-    ["aabbabc"]-    [Just [" 0: abc"]]-,-testRegex "a.+?c" []-    ["abcabc"]-    [Just [" 0: abcabc"],-     Just [" 1: abc"]]-,-testRegex "(a+|b)*" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 2: "]]-,-testRegex "(a+|b){0,}" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 2: "]]-,-testRegex "(a+|b)+" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: a"]]-,-testRegex "(a+|b){1,}" []-    ["ab"]-    [Just [" 0: ab"],-     Just [" 1: a"]]-,-testRegex "(a+|b)?" []-    ["ab"]-    [Just [" 0: a"],-     Just [" 1: "]]-,-testRegex "(a+|b){0,1}" []-    ["ab"]-    [Just [" 0: a"],-     Just [" 1: "]]-,-testRegex "[^ab]*" []-    ["cde"]-    [Just [" 0: cde"],-     Just [" 1: cd"],-     Just [" 2: c"],-     Just [" 3: "]]-,-testRegex "abc" []-    ["*** Failers",-     "b",-     ""]-    [Nothing,-     Nothing]-,-testRegex "a*" []-    [""]-    []-,-testRegex "([abc])*d" []-    ["abbbcd"]-    [Just [" 0: abbbcd"]]-,-testRegex "([abc])*bcd" []-    ["abcd"]-    [Just [" 0: abcd"]]-,-testRegex "a|b|c|d|e" []-    ["e"]-    [Just [" 0: e"]]-,-testRegex "(a|b|c|d|e)f" []-    ["ef"]-    [Just [" 0: ef"]]-,-testRegex "abcd*efg" []-    ["abcdefg"]-    [Just [" 0: abcdefg"]]-,-testRegex "ab*" []-    ["xabyabbbz",-     "xayabbbz"]-    [Just [" 0: ab"],-     Just [" 1: a"],-     Just [" 0: a"]]-,-testRegex "(ab|cd)e" []-    ["abcde"]-    [Just [" 0: cde"]]-,-testRegex "[abhgefdc]ij" []-    ["hij"]-    [Just [" 0: hij"]]-,-testRegex "^(ab|cd)e" []-    []-    []-,-testRegex "(abc|)ef" []-    ["abcdef"]-    [Just [" 0: ef"]]-,-testRegex "(a|b)c*d" []-    ["abcd"]-    [Just [" 0: bcd"]]-,-testRegex "(ab|ab*)bc" []-    ["abc"]-    [Just [" 0: abc"]]-,-testRegex "a([bc]*)c*" []-    ["abc"]-    [Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 2: a"]]-,-testRegex "a([bc]*)(c*d)" []-    ["abcd"]-    [Just [" 0: abcd"]]-,-testRegex "a([bc]+)(c*d)" []-    ["abcd"]-    [Just [" 0: abcd"]]-,-testRegex "a([bc]*)(c+d)" []-    ["abcd"]-    [Just [" 0: abcd"]]-,-testRegex "a[bcd]*dcdcde" []-    ["adcdcde"]-    [Just [" 0: adcdcde"]]-,-testRegex "a[bcd]+dcdcde" []-    ["*** Failers",-     "abcde",-     "adcdcde"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "(ab|a)b*c" []-    ["abc"]-    [Just [" 0: abc"]]-,-testRegex "((a)(b)c)(d)" []-    ["abcd"]-    [Just [" 0: abcd"]]-,-testRegex "[a-zA-Z_][a-zA-Z0-9_]*" []-    ["alpha"]-    [Just [" 0: alpha"],-     Just [" 1: alph"],-     Just [" 2: alp"],-     Just [" 3: al"],-     Just [" 4: a"]]-,-testRegex "^a(bc+|b[eh])g|.h$" []-    ["abh"]-    [Just [" 0: bh"]]-,-testRegex "(bc+d$|ef*g.|h?i(j|k))" []-    ["effgz",-     "ij",-     "reffgz",-     "*** Failers",-     "effg",-     "bcdd"]-    [Just [" 0: effgz"],-     Just [" 0: ij"],-     Just [" 0: effgz"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "((((((((((a))))))))))" []-    ["a"]-    [Just [" 0: a"]]-,-testRegex "(((((((((a)))))))))" []-    ["a"]-    [Just [" 0: a"]]-,-testRegex "multiple words of text" []-    ["*** Failers",-     "aa",-     "uh-uh"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "multiple words" []-    ["multiple words, yeah"]-    [Just [" 0: multiple words"]]-,-testRegex "(.*)c(.*)" []-    ["abcde"]-    [Just [" 0: abcde"],-     Just [" 1: abcd"],-     Just [" 2: abc"]]-,-testRegex "\\((.*), (.*)\\)" []-    ["(a, b)"]-    [Just [" 0: (a, b)"]]-,-testRegex "[k]" []-    []-    []-,-testRegex "abcd" []-    ["abcd"]-    [Just [" 0: abcd"]]-,-testRegex "a(bc)d" []-    ["abcd"]-    [Just [" 0: abcd"]]-,-testRegex "a[-]?c" []-    ["ac"]-    [Just [" 0: ac"]]-,-testRegex "abc" [caseless]-    ["ABC",-     "XABCY",-     "ABABC",-     "*** Failers",-     "aaxabxbaxbbx",-     "XBC",-     "AXC",-     "ABX"]-    [Just [" 0: ABC"],-     Just [" 0: ABC"],-     Just [" 0: ABC"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "ab*c" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,-testRegex "ab*bc" [caseless]-    ["ABC",-     "ABBC"]-    [Just [" 0: ABC"],-     Just [" 0: ABBC"]]-,-testRegex "ab*?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,-testRegex "ab{0,}?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,-testRegex "ab+?bc" [caseless]-    ["ABBC"]-    [Just [" 0: ABBC"]]-,-testRegex "ab+bc" [caseless]-    ["*** Failers",-     "ABC",-     "ABQ"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "ab{1,}bc" [caseless]-    []-    []-,-testRegex "ab+bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,-testRegex "ab{1,}?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,-testRegex "ab{1,3}?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,-testRegex "ab{3,4}?bc" [caseless]-    ["ABBBBC"]-    [Just [" 0: ABBBBC"]]-,-testRegex "ab{4,5}?bc" [caseless]-    ["*** Failers",-     "ABQ",-     "ABBBBC"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "ab??bc" [caseless]-    ["ABBC",-     "ABC"]-    [Just [" 0: ABBC"],-     Just [" 0: ABC"]]-,-testRegex "ab{0,1}?bc" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,-testRegex "ab??bc" [caseless]-    []-    []-,-testRegex "ab??c" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,-testRegex "ab{0,1}?c" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,-testRegex "^abc$" [caseless]-    ["ABC",-     "*** Failers",-     "ABBBBC",-     "ABCC"]-    [Just [" 0: ABC"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^abc" [caseless]-    ["ABCC"]-    [Just [" 0: ABC"]]-,-testRegex "^abc$" [caseless]-    []-    []-,-testRegex "abc$" [caseless]-    ["AABC"]-    [Just [" 0: ABC"]]-,-testRegex "^" [caseless]-    ["ABC"]-    [Just [" 0: "]]-,-testRegex "$" [caseless]-    ["ABC"]-    [Just [" 0: "]]-,-testRegex "a.c" [caseless]-    ["ABC",-     "AXC"]-    [Just [" 0: ABC"],-     Just [" 0: AXC"]]-,-testRegex "a.*?c" [caseless]-    ["AXYZC"]-    [Just [" 0: AXYZC"]]-,-testRegex "a.*c" [caseless]-    ["*** Failers",-     "AABC",-     "AXYZD"]-    [Nothing,-     Just [" 0: AABC"],-     Nothing]-,-testRegex "a[bc]d" [caseless]-    ["ABD"]-    [Just [" 0: ABD"]]-,-testRegex "a[b-d]e" [caseless]-    ["ACE",-     "*** Failers",-     "ABC",-     "ABD"]-    [Just [" 0: ACE"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a[b-d]" [caseless]-    ["AAC"]-    [Just [" 0: AC"]]-,-testRegex "a[-b]" [caseless]-    ["A-"]-    [Just [" 0: A-"]]-,-testRegex "a[b-]" [caseless]-    ["A-"]-    [Just [" 0: A-"]]-,-testRegex "a]" [caseless]-    ["A]"]-    [Just [" 0: A]"]]-,-testRegex "a[]]b" [caseless]-    ["A]B"]-    [Just [" 0: A]B"]]-,-testRegex "a[^bc]d" [caseless]-    ["AED"]-    [Just [" 0: AED"]]-,-testRegex "a[^-b]c" [caseless]-    ["ADC",-     "*** Failers",-     "ABD",-     "A-C"]-    [Just [" 0: ADC"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a[^]b]c" [caseless]-    ["ADC"]-    [Just [" 0: ADC"]]-,-testRegex "ab|cd" [caseless]-    ["ABC",-     "ABCD"]-    [Just [" 0: AB"],-     Just [" 0: AB"]]-,-testRegex "()ef" [caseless]-    ["DEF"]-    [Just [" 0: EF"]]-,-testRegex "$b" [caseless]-    ["*** Failers",-     "A]C",-     "B"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\(b" [caseless]-    ["A(B"]-    [Just [" 0: A(B"]]-,-testRegex "a\\(*b" [caseless]-    ["AB",-     "A((B"]-    [Just [" 0: AB"],-     Just [" 0: A((B"]]-,-testRegex "a\\\\b" [caseless]-    ["A\\B"]-    [Nothing]-,-testRegex "((a))" [caseless]-    ["ABC"]-    [Just [" 0: A"]]-,-testRegex "(a)b(c)" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,-testRegex "a+b+c" [caseless]-    ["AABBABC"]-    [Just [" 0: ABC"]]-,-testRegex "a{1,}b{1,}c" [caseless]-    ["AABBABC"]-    [Just [" 0: ABC"]]-,-testRegex "a.+?c" [caseless]-    ["ABCABC"]-    [Just [" 0: ABCABC"],-     Just [" 1: ABC"]]-,-testRegex "a.*?c" [caseless]-    ["ABCABC"]-    [Just [" 0: ABCABC"],-     Just [" 1: ABC"]]-,-testRegex "a.{0,5}?c" [caseless]-    ["ABCABC"]-    [Just [" 0: ABCABC"],-     Just [" 1: ABC"]]-,-testRegex "(a+|b)*" [caseless]-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: A"],-     Just [" 2: "]]-,-testRegex "(a+|b){0,}" [caseless]-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: A"],-     Just [" 2: "]]-,-testRegex "(a+|b)+" [caseless]-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: A"]]-,-testRegex "(a+|b){1,}" [caseless]-    ["AB"]-    [Just [" 0: AB"],-     Just [" 1: A"]]-,-testRegex "(a+|b)?" [caseless]-    ["AB"]-    [Just [" 0: A"],-     Just [" 1: "]]-,-testRegex "(a+|b){0,1}" [caseless]-    ["AB"]-    [Just [" 0: A"],-     Just [" 1: "]]-,-testRegex "(a+|b){0,1}?" [caseless]-    ["AB"]-    [Just [" 0: A"],-     Just [" 1: "]]-,-testRegex "[^ab]*" [caseless]-    ["CDE"]-    [Just [" 0: CDE"],-     Just [" 1: CD"],-     Just [" 2: C"],-     Just [" 3: "]]-,-testRegex "abc" [caseless]-    []-    []-,-testRegex "a*" [caseless]-    [""]-    []-,-testRegex "([abc])*d" [caseless]-    ["ABBBCD"]-    [Just [" 0: ABBBCD"]]-,-testRegex "([abc])*bcd" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"]]-,-testRegex "a|b|c|d|e" [caseless]-    ["E"]-    [Just [" 0: E"]]-,-testRegex "(a|b|c|d|e)f" [caseless]-    ["EF"]-    [Just [" 0: EF"]]-,-testRegex "abcd*efg" [caseless]-    ["ABCDEFG"]-    [Just [" 0: ABCDEFG"]]-,-testRegex "ab*" [caseless]-    ["XABYABBBZ",-     "XAYABBBZ"]-    [Just [" 0: AB"],-     Just [" 1: A"],-     Just [" 0: A"]]-,-testRegex "(ab|cd)e" [caseless]-    ["ABCDE"]-    [Just [" 0: CDE"]]-,-testRegex "[abhgefdc]ij" [caseless]-    ["HIJ"]-    [Just [" 0: HIJ"]]-,-testRegex "^(ab|cd)e" [caseless]-    ["ABCDE"]-    [Nothing]-,-testRegex "(abc|)ef" [caseless]-    ["ABCDEF"]-    [Just [" 0: EF"]]-,-testRegex "(a|b)c*d" [caseless]-    ["ABCD"]-    [Just [" 0: BCD"]]-,-testRegex "(ab|ab*)bc" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,-testRegex "a([bc]*)c*" [caseless]-    ["ABC"]-    [Just [" 0: ABC"],-     Just [" 1: AB"],-     Just [" 2: A"]]-,-testRegex "a([bc]*)(c*d)" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"]]-,-testRegex "a([bc]+)(c*d)" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"]]-,-testRegex "a([bc]*)(c+d)" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"]]-,-testRegex "a[bcd]*dcdcde" [caseless]-    ["ADCDCDE"]-    [Just [" 0: ADCDCDE"]]-,-testRegex "a[bcd]+dcdcde" [caseless]-    []-    []-,-testRegex "(ab|a)b*c" [caseless]-    ["ABC"]-    [Just [" 0: ABC"]]-,-testRegex "((a)(b)c)(d)" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"]]-,-testRegex "[a-zA-Z_][a-zA-Z0-9_]*" [caseless]-    ["ALPHA"]-    [Just [" 0: ALPHA"],-     Just [" 1: ALPH"],-     Just [" 2: ALP"],-     Just [" 3: AL"],-     Just [" 4: A"]]-,-testRegex "^a(bc+|b[eh])g|.h$" [caseless]-    ["ABH"]-    [Just [" 0: BH"]]-,-testRegex "(bc+d$|ef*g.|h?i(j|k))" [caseless]-    ["EFFGZ",-     "IJ",-     "REFFGZ",-     "*** Failers",-     "ADCDCDE",-     "EFFG",-     "BCDD"]-    [Just [" 0: EFFGZ"],-     Just [" 0: IJ"],-     Just [" 0: EFFGZ"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "((((((((((a))))))))))" [caseless]-    ["A"]-    [Just [" 0: A"]]-,-testRegex "(((((((((a)))))))))" [caseless]-    ["A"]-    [Just [" 0: A"]]-,-testRegex "(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))" [caseless]-    ["A"]-    [Just [" 0: A"]]-,-testRegex "(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))" [caseless]-    ["C"]-    [Just [" 0: C"]]-,-testRegex "multiple words of text" [caseless]-    ["*** Failers",-     "AA",-     "UH-UH"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "multiple words" [caseless]-    ["MULTIPLE WORDS, YEAH"]-    [Just [" 0: MULTIPLE WORDS"]]-,-testRegex "(.*)c(.*)" [caseless]-    ["ABCDE"]-    [Just [" 0: ABCDE"],-     Just [" 1: ABCD"],-     Just [" 2: ABC"]]-,-testRegex "\\((.*), (.*)\\)" [caseless]-    ["(A, B)"]-    [Just [" 0: (A, B)"]]-,-testRegex "[k]" [caseless]-    []-    []-,-testRegex "abcd" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"]]-,-testRegex "a(bc)d" [caseless]-    ["ABCD"]-    [Just [" 0: ABCD"]]-,-testRegex "a[-]?c" [caseless]-    ["AC"]-    [Just [" 0: AC"]]-,-testRegex "a(?!b)." []-    ["abad"]-    [Just [" 0: ad"]]-,-testRegex "a(?=d)." []-    ["abad"]-    [Just [" 0: ad"]]-,-testRegex "a(?=c|d)." []-    ["abad"]-    [Just [" 0: ad"]]-,-testRegex "a(?:b|c|d)(.)" []-    ["ace"]-    [Just [" 0: ace"]]-,-testRegex "a(?:b|c|d)*(.)" []-    ["ace"]-    [Just [" 0: ace"],-     Just [" 1: ac"]]-,-testRegex "a(?:b|c|d)+?(.)" []-    ["ace",-     "acdbcdbe"]-    [Just [" 0: ace"],-     Just [" 0: acdbcdbe"],-     Just [" 1: acdbcdb"],-     Just [" 2: acdbcd"],-     Just [" 3: acdbc"],-     Just [" 4: acdb"],-     Just [" 5: acd"]]-,-testRegex "a(?:b|c|d)+(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: acdbcdb"],-     Just [" 2: acdbcd"],-     Just [" 3: acdbc"],-     Just [" 4: acdb"],-     Just [" 5: acd"]]-,-testRegex "a(?:b|c|d){2}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdb"]]-,-testRegex "a(?:b|c|d){4,5}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdb"],-     Just [" 1: acdbcd"]]-,-testRegex "a(?:b|c|d){4,5}?(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdb"],-     Just [" 1: acdbcd"]]-,-testRegex "((foo)|(bar))*" []-    ["foobar"]-    [Just [" 0: foobar"],-     Just [" 1: foo"],-     Just [" 2: "]]-,-testRegex "a(?:b|c|d){6,7}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"]]-,-testRegex "a(?:b|c|d){6,7}?(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"]]-,-testRegex "a(?:b|c|d){5,6}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: acdbcdb"]]-,-testRegex "a(?:b|c|d){5,6}?(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: acdbcdb"]]-,-testRegex "a(?:b|c|d){5,7}(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: acdbcdb"]]-,-testRegex "a(?:b|c|d){5,7}?(.)" []-    ["acdbcdbe"]-    [Just [" 0: acdbcdbe"],-     Just [" 1: acdbcdb"]]-,-testRegex "a(?:b|(c|e){1,2}?|d)+?(.)" []-    ["ace"]-    [Just [" 0: ace"]]-,-testRegex "^(.+)?B" []-    ["AB"]-    [Just [" 0: AB"]]-,-testRegex "^([^a-z])|(\\^)$" []-    ["."]-    [Just [" 0: ."]]-,-testRegex "^[<>]&" []-    ["<&OUT"]-    [Just [" 0: <&"]]-,-testRegex "(?:(f)(o)(o)|(b)(a)(r))*" []-    ["foobar"]-    [Just [" 0: foobar"],-     Just [" 1: foo"],-     Just [" 2: "]]-,-testRegex "(?<=a)b" []-    ["ab",-     "*** Failers",-     "cb",-     "b"]-    [Just [" 0: b"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<!c)b" []-    ["ab",-     "b",-     "b"]-    [Just [" 0: b"],-     Just [" 0: b"],-     Just [" 0: b"]]-,-testRegex "(?:..)*a" []-    ["aba"]-    [Just [" 0: aba"],-     Just [" 1: a"]]-,-testRegex "(?:..)*?a" []-    ["aba"]-    [Just [" 0: aba"],-     Just [" 1: a"]]-,-testRegex "^(){3,5}" []-    ["abc"]-    [Just [" 0: "]]-,-testRegex "^(a+)*ax" []-    ["aax"]-    [Just [" 0: aax"]]-,-testRegex "^((a|b)+)*ax" []-    ["aax"]-    [Just [" 0: aax"]]-,-testRegex "^((a|bc)+)*ax" []-    ["aax"]-    [Just [" 0: aax"]]-,-testRegex "(a|x)*ab" []-    ["cab"]-    [Just [" 0: ab"]]-,-testRegex "(a)*ab" []-    ["cab"]-    [Just [" 0: ab"]]-,-testRegex "(?:(?i)a)b" []-    ["ab"]-    [Just [" 0: ab"]]-,-testRegex "((?i)a)b" []-    ["ab"]-    [Just [" 0: ab"]]-,-testRegex "(?:(?i)a)b" []-    ["Ab"]-    [Just [" 0: Ab"]]-,-testRegex "((?i)a)b" []-    ["Ab"]-    [Just [" 0: Ab"]]-,-testRegex "(?:(?i)a)b" []-    ["*** Failers",-     "cb",-     "aB"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "((?i)a)b" []-    []-    []-,-testRegex "(?i:a)b" []-    ["ab"]-    [Just [" 0: ab"]]-,-testRegex "((?i:a))b" []-    ["ab"]-    [Just [" 0: ab"]]-,-testRegex "(?i:a)b" []-    ["Ab"]-    [Just [" 0: Ab"]]-,-testRegex "((?i:a))b" []-    ["Ab"]-    [Just [" 0: Ab"]]-,-testRegex "(?i:a)b" []-    ["*** Failers",-     "aB",-     "aB"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "((?i:a))b" []-    []-    []-,-testRegex "(?:(?-i)a)b" [caseless]-    ["ab"]-    [Just [" 0: ab"]]-,-testRegex "((?-i)a)b" [caseless]-    ["ab"]-    [Just [" 0: ab"]]-,-testRegex "(?:(?-i)a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,-testRegex "((?-i)a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,-testRegex "(?:(?-i)a)b" [caseless]-    ["*** Failers",-     "aB",-     "Ab"]-    [Nothing,-     Just [" 0: aB"],-     Nothing]-,-testRegex "((?-i)a)b" [caseless]-    []-    []-,-testRegex "(?:(?-i)a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,-testRegex "((?-i)a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,-testRegex "(?:(?-i)a)b" [caseless]-    ["*** Failers",-     "Ab",-     "AB"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "((?-i)a)b" [caseless]-    []-    []-,-testRegex "(?-i:a)b" [caseless]-    ["ab"]-    [Just [" 0: ab"]]-,-testRegex "((?-i:a))b" [caseless]-    ["ab"]-    [Just [" 0: ab"]]-,-testRegex "(?-i:a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,-testRegex "((?-i:a))b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,-testRegex "(?-i:a)b" [caseless]-    ["*** Failers",-     "AB",-     "Ab"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "((?-i:a))b" [caseless]-    []-    []-,-testRegex "(?-i:a)b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,-testRegex "((?-i:a))b" [caseless]-    ["aB"]-    [Just [" 0: aB"]]-,-testRegex "(?-i:a)b" [caseless]-    ["*** Failers",-     "Ab",-     "AB"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "((?-i:a))b" [caseless]-    []-    []-,-testRegex "((?-i:a.))b" [caseless]-    ["*** Failers",-     "AB",-     "a\\nB"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "((?s-i:a.))b" [caseless]-    ["a\\nB"]-    [Just [" 0: a\\x0aB"]]-,-testRegex "(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))" []-    ["cabbbb"]-    [Just [" 0: cabbbb"]]-,-testRegex "(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))" []-    ["caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"]-    [Just [" 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"]]-,-testRegex "foo\\w*\\d{4}baz" []-    ["foobar1234baz"]-    [Just [" 0: foobar1234baz"]]-,-testRegex "x(~~)*(?:(?:F)?)?" []-    ["x~~"]-    [Just [" 0: x~~"],-     Just [" 1: x"]]-,-testRegex "^a(?#xxx){3}c" []-    ["aaac"]-    [Just [" 0: aaac"]]-,-testRegex "^a (?#xxx) (?#yyy) {3}c" [ERROR]-    ["aaac"]-    [Just [" 0: aaac"]]-,-testRegex "(?<![cd])b" []-    ["*** Failers",-     "B\\nB",-     "dbcb"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "(?<![cd])[ab]" []-    ["dbaacb"]-    [Just [" 0: a"]]-,-testRegex "(?<!(c|d))b" []-    []-    []-,-testRegex "(?<!(c|d))[ab]" []-    ["dbaacb"]-    [Just [" 0: a"]]-,-testRegex "(?<!cd)[ab]" []-    ["cdaccb"]-    [Just [" 0: b"]]-,-testRegex "^(?:a?b?)*$" []-    ["*** Failers",-     "dbcb",-     "a--"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "((?s)^a(.))((?m)^b$)" []-    ["a\\nb\\nc\\n"]-    [Just [" 0: a\\x0ab"]]-,-testRegex "((?m)^b$)" []-    ["a\\nb\\nc\\n"]-    [Just [" 0: b"]]-,-testRegex "(?m)^b" []-    ["a\\nb\\n"]-    [Just [" 0: b"]]-,-testRegex "(?m)^(b)" []-    ["a\\nb\\n"]-    [Just [" 0: b"]]-,-testRegex "((?m)^b)" []-    ["a\\nb\\n"]-    [Just [" 0: b"]]-,-testRegex "\\n((?m)^b)" []-    ["a\\nb\\n"]-    [Just [" 0: \\x0ab"]]-,-testRegex "((?s).)c(?!.)" []-    ["a\\nb\\nc\\n",-     "a\\nb\\nc\\n"]-    [Just [" 0: \\x0ac"],-     Just [" 0: \\x0ac"]]-,-testRegex "((?s)b.)c(?!.)" []-    ["a\\nb\\nc\\n",-     "a\\nb\\nc\\n"]-    [Just [" 0: b\\x0ac"],-     Just [" 0: b\\x0ac"]]-,-testRegex "^b" []-    []-    []-,-testRegex "()^b" []-    ["*** Failers",-     "a\\nb\\nc\\n",-     "a\\nb\\nc\\n"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "((?m)^b)" []-    ["a\\nb\\nc\\n"]-    [Just [" 0: b"]]-,-testRegex "(?(?!a)a|b)" []-    []-    []-,-testRegex "(?(?!a)b|a)" []-    ["a"]-    [Just [" 0: a"]]-,-testRegex "(?(?=a)b|a)" []-    ["*** Failers",-     "a",-     "a"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "(?(?=a)a|b)" []-    ["a"]-    [Just [" 0: a"]]-,-testRegex "(\\w+:)+" []-    ["one:"]-    [Just [" 0: one:"]]-,-testRegex "$(?<=^(a))" []-    ["a"]-    [Just [" 0: "]]-,-testRegex "([\\w:]+::)?(\\w+)$" []-    ["abcd",-     "xy:z:::abcd"]-    [Just [" 0: abcd"],-     Just [" 0: xy:z:::abcd"]]-,-testRegex "^[^bcd]*(c+)" []-    ["aexycd"]-    [Just [" 0: aexyc"]]-,-testRegex "(a*)b+" []-    ["caab"]-    [Just [" 0: aab"]]-,-testRegex "([\\w:]+::)?(\\w+)$" []-    ["abcd",-     "xy:z:::abcd",-     "*** Failers",-     "abcd:",-     "abcd:"]-    [Just [" 0: abcd"],-     Just [" 0: xy:z:::abcd"],-     Just [" 0: Failers"],-     Nothing,-     Nothing]-,-testRegex "^[^bcd]*(c+)" []-    ["aexycd"]-    [Just [" 0: aexyc"]]-,-testRegex "(>a+)ab" []-    []-    []-,-testRegex "(?>a+)b" []-    ["aaab"]-    [Just [" 0: aaab"]]-,-testRegex "([[:]+)" []-    ["a:[b]:"]-    [Just [" 0: :["],-     Just [" 1: :"]]-,-testRegex "([[=]+)" []-    ["a=[b]="]-    [Just [" 0: =["],-     Just [" 1: ="]]-,-testRegex "([[.]+)" []-    ["a.[b]."]-    [Just [" 0: .["],-     Just [" 1: ."]]-,-testRegex "((?>a+)b)" []-    ["aaab"]-    [Just [" 0: aaab"]]-,-testRegex "(?>(a+))b" []-    ["aaab"]-    [Just [" 0: aaab"]]-,-testRegex "((?>[^()]+)|\\([^()]*\\))+" []-    ["((abc(ade)ufh()()x"]-    [Just [" 0: abc(ade)ufh()()x"],-     Just [" 1: abc(ade)ufh()()"],-     Just [" 2: abc(ade)ufh()"],-     Just [" 3: abc(ade)ufh"],-     Just [" 4: abc(ade)"],-     Just [" 5: abc"]]-,-testRegex "a\\Z" []-    ["*** Failers",-     "aaab",-     "a\\nb\\n"]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "b\\Z" []-    ["a\\nb\\n"]-    [Just [" 0: b"]]-,-testRegex "b\\z" []-    []-    []-,-testRegex "b\\Z" []-    ["a\\nb"]-    [Just [" 0: b"]]-,-testRegex "b\\z" []-    ["a\\nb",-     "*** Failers",-     "",-     "/(?>.*)(?<=(abcd|wxyz))/",-     "alphabetabcd",-     "endingwxyz",-     "*** Failers",-     "a rather long string that doesn't end with one of them"]-    [Just [" 0: b"],-     Nothing,-     Just ["/(?>.*)(?<=(abcd|wxyz))/"],-     Just [" 0: alphabetabcd"],-     Just [" 0: endingwxyz"],-     Nothing,-     Nothing]-,-testRegex "word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword" []-    ["word cat dog elephant mussel cow horse canary baboon snake shark otherword",-     "word cat dog elephant mussel cow horse canary baboon snake shark",-     "",-     "/word (?>[a-zA-Z0-9]+ ){0,30}otherword/",-     "word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope"]-    [Just [" 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword"],-     Nothing,-     Just ["/word (?>[a-zA-Z0-9]+ ){0,30}otherword/"],-     Nothing]-,-testRegex "(?<=\\d{3}(?!999))foo" []-    ["999foo",-     "123999foo ",-     "*** Failers",-     "123abcfoo",-     "",-     "/(?<=(?!...999)\\d{3})foo/",-     "999foo",-     "123999foo ",-     "*** Failers",-     "123abcfoo"]-    [Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing,-     Just ["/(?<=(?!...999)\\d{3})foo/"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing]-,-testRegex "(?<=\\d{3}(?!999)...)foo" []-    ["123abcfoo",-     "123456foo ",-     "*** Failers",-     "123999foo  ",-     "",-     "/(?<=\\d{3}...)(?<!999)foo/",-     "123abcfoo   ",-     "123456foo ",-     "*** Failers",-     "123999foo  "]-    [Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing,-     Just ["/(?<=\\d{3}...)(?<!999)foo/"],-     Just [" 0: foo"],-     Just [" 0: foo"],-     Nothing,-     Nothing]-,-testRegex "((Z)+|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: ZA"],-     Just [" 1: Z"],-     Just [" 2: "]]-,-testRegex "(Z()|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: ZA"],-     Just [" 1: Z"],-     Just [" 2: "]]-,-testRegex "(Z(())|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: ZA"],-     Just [" 1: Z"],-     Just [" 2: "]]-,-testRegex "((?>Z)+|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: ZA"],-     Just [" 1: Z"],-     Just [" 2: "]]-,-testRegex "((?>)+|A)*" []-    ["ZABCDEFG"]-    [Just [" 0: "]]-,-testRegex "a*" [ERROR]-    ["abbab"]-    [Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 0: "]]-,-testRegex "^[a-\\d]" []-    ["abcde",-     "-things",-     "0digit",-     "*** Failers",-     "bcdef    "]-    [Just [" 0: a"],-     Just [" 0: -"],-     Just [" 0: 0"],-     Nothing,-     Nothing]-,-testRegex "^[\\d-a]" []-    ["abcde",-     "-things",-     "0digit",-     "*** Failers",-     "bcdef    ",-     "",-     "/[[:space:]]+/",-     "> \\x09\\x0a\\x0c\\x0d\\x0b<",-     "",-     "/[[:blank:]]+/",-     "> \\x09\\x0a\\x0c\\x0d\\x0b<",-     "",-     "/[\\s]+/",-     "> \\x09\\x0a\\x0c\\x0d\\x0b<",-     "",-     "/\\s+/",-     "> \\x09\\x0a\\x0c\\x0d\\x0b<",-     "",-     "/a\vb/x",-     "ab"]-    [Just [" 0: a"],-     Just [" 0: -"],-     Just [" 0: 0"],-     Nothing,-     Nothing,-     Just ["/[[:space:]]+/"],-     Just [" 0:  \\x09\\x0a\\x0c\\x0d\\x0b"],-     Just [" 1:  \\x09\\x0a\\x0c\\x0d"],-     Just [" 2:  \\x09\\x0a\\x0c"],-     Just [" 3:  \\x09\\x0a"],-     Just [" 4:  \\x09"],-     Just [" 5:  "],-     Just ["/[[:blank:]]+/"],-     Just [" 0:  \\x09"],-     Just [" 1:  "],-     Just ["/[\\s]+/"],-     Just [" 0:  \\x09\\x0a\\x0c\\x0d"],-     Just [" 1:  \\x09\\x0a\\x0c"],-     Just [" 2:  \\x09\\x0a"],-     Just [" 3:  \\x09"],-     Just [" 4:  "],-     Just ["/\\s+/"],-     Just [" 0:  \\x09\\x0a\\x0c\\x0d"],-     Just [" 1:  \\x09\\x0a\\x0c"],-     Just [" 2:  \\x09\\x0a"],-     Just [" 3:  \\x09"],-     Just [" 4:  "],-     Just ["/a\vb/x"],-     Nothing]-,-testRegex "(?!\\A)x" [ERROR]-    ["a\\nxb\\n"]-    [Just [" 0: x"]]-,-testRegex "(?!^)x" [ERROR]-    ["a\\nxb\\n"]-    [Nothing]-,-testRegex "abc\\Qabc\\Eabc" []-    ["abcabcabc",-     "",-     "/abc\\Q(*+|\\Eabc/",-     "abc(*+|abc "]-    [Just [" 0: abcabcabc"],-     Just ["/abc\\Q(*+|\\Eabc/"],-     Just [" 0: abc(*+|abc"]]-,-testRegex "   abc\\Q abc\\Eabc" [ERROR]-    ["abc abcabc",-     "*** Failers",-     "abcabcabc  ",-     "",-     "/abc#comment",-     "\\Q#not comment",-     "literal\\E/x",-     "abc#not comment\\n    literal     "]-    [Just [" 0: abc abcabc"],-     Nothing,-     Nothing,-     Just ["/abc#comment"],-     Just [" 0: abc#not comment\\x0a    literal"]]-,-testRegex "ERROR" []-    ["\\Q#not comment",-     "literal/x",-     "abc#not comment\\n    literal     "]-    [Just [" 0: abc#not comment\\x0a    literal"]]-,-testRegex "ERROR" []-    ["\\Q#not comment",-     "literal\\E #more comment",-     "/x",-     "abc#not comment\\n    literal     "]-    [Just [" 0: abc#not comment\\x0a    literal"]]-,-testRegex "ERROR" []-    ["\\Q#not comment",-     "literal\\E #more comment/x",-     "abc#not comment\\n    literal     "]-    [Just [" 0: abc#not comment\\x0a    literal"]]-,-testRegex "\\Qabc\\$xyz\\E" []-    ["abc\\\\\\$xyz"]-    [Just [" 0: abc\\$xyz"]]-,-testRegex "\\Qabc\\E\\$\\Qxyz\\E" []-    ["abc\\$xyz"]-    [Just [" 0: abc$xyz"]]-,-testRegex "\\Gabc" []-    ["abc",-     "*** Failers",-     "xyzabc  "]-    [Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "\\Gabc." [ERROR]-    ["abc1abc2xyzabc3"]-    [Just [" 0: abc1"],-     Just [" 0: abc2"]]-,-testRegex "abc." [ERROR]-    ["abc1abc2xyzabc3 "]-    [Just [" 0: abc1"],-     Just [" 0: abc2"],-     Just [" 0: abc3"]]-,-testRegex "a(?x: b c )d" []-    ["XabcdY",-     "*** Failers ",-     "Xa b c d Y "]-    [Just [" 0: abcd"],-     Nothing,-     Nothing]-,-testRegex "((?x)x y z | a b c)" []-    ["XabcY",-     "AxyzB "]-    [Just [" 0: abc"],-     Just [" 0: xyz"]]-,-testRegex "(?i)AB(?-i)C" []-    ["XabCY",-     "*** Failers",-     "XabcY  "]-    [Just [" 0: abC"],-     Nothing,-     Nothing]-,-testRegex "((?i)AB(?-i)C|D)E" []-    ["abCE",-     "DE",-     "*** Failers",-     "abcE",-     "abCe  ",-     "dE",-     "De    "]-    [Just [" 0: abCE"],-     Just [" 0: DE"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[z\\Qa-d]\\E]" []-    ["z",-     "a",-     "-",-     "d",-     "] ",-     "*** Failers",-     "b     "]-    [Just [" 0: z"],-     Just [" 0: a"],-     Just [" 0: -"],-     Just [" 0: d"],-     Just [" 0: ]"],-     Just [" 0: a"],-     Nothing]-,-testRegex "[\\z\\C]" []-    ["z",-     "C ",-     "",-     "/\\M/",-     "M ",-     "",-     "/(a+)*b/",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ",-     "",-     "/(?i)reg(?:ul(?:[a\228]|ae)r|ex)/",-     "REGular",-     "regulaer",-     "Regex  ",-     "regul\228r "]-    [Just [" 0: z"],-     Just [" 0: C"],-     Just ["/\\M/"],-     Just [" 0: M"],-     Just ["/(a+)*b/"],-     Nothing,-     Just ["/(?i)reg(?:ul(?:[a\228]|ae)r|ex)/"],-     Just [" 0: REGular"],-     Just [" 0: regulaer"],-     Just [" 0: Regex"],-     Just [" 0: regul\\xe4r"]]-,-testRegex "\197\230\229\228[\224-\255\192-\223]+" []-    ["\197\230\229\228\224",-     "\197\230\229\228\255",-     "\197\230\229\228\192",-     "\197\230\229\228\223"]-    [Just [" 0: \\xc5\\xe6\\xe5\\xe4\\xe0"],-     Just [" 0: \\xc5\\xe6\\xe5\\xe4\\xff"],-     Just [" 0: \\xc5\\xe6\\xe5\\xe4\\xc0"],-     Just [" 0: \\xc5\\xe6\\xe5\\xe4\\xdf"]]-,-testRegex "(?<=Z)X." []-    ["\\x84XAZXB"]-    [Just [" 0: XB"]]-,-testRegex "^(?(2)a|(1)(2))+$" []-    ["123a"]-    [Just ["Error -17"]]-,-testRegex "(?<=a|bbbb)c" []-    ["ac",-     "bbbbc"]-    [Just [" 0: c"],-     Just [" 0: c"]]-,-testRegex "abc" [ERROR]-    ["<testsavedregex",-     "abc",-     "*** Failers",-     "bca",-     "",-     "/abc/F>testsavedregex",-     "<testsavedregex",-     "abc",-     "*** Failers",-     "bca"]-    [Just ["Compiled regex written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex loaded from testsavedregex"],-     Just ["No study data"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Just ["/abc/F>testsavedregex"],-     Just ["Compiled regex written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex (byte-inverted) loaded from testsavedregex"],-     Just ["No study data"],-     Just [" 0: abc"],-     Nothing,-     Nothing]-,-testRegex "(a|b)" [ERROR]-    ["<testsavedregex",-     "abc",-     "*** Failers",-     "def  ",-     "",-     "/(a|b)/SF>testsavedregex",-     "<testsavedregex",-     "abc",-     "*** Failers",-     "def  ",-     "",-     "/line\\nbreak/",-     "this is a line\\nbreak",-     "line one\\nthis is a line\\nbreak in the second line "]-    [Just ["Compiled regex written to testsavedregex"],-     Just ["Study data written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex loaded from testsavedregex"],-     Just ["Study data loaded from testsavedregex"],-     Just [" 0: a"],-     Just [" 0: a"],-     Nothing,-     Just ["/(a|b)/SF>testsavedregex"],-     Just ["Compiled regex written to testsavedregex"],-     Just ["Study data written to testsavedregex"],-     Just ["<testsavedregex"],-     Just ["Compiled regex (byte-inverted) loaded from testsavedregex"],-     Just ["Study data loaded from testsavedregex"],-     Just [" 0: a"],-     Just [" 0: a"],-     Nothing,-     Just ["/line\\nbreak/"],-     Just [" 0: line\\x0abreak"],-     Just [" 0: line\\x0abreak"]]-,-testRegex "line\\nbreak" [ERROR]-    ["this is a line\\nbreak",-     "** Failers ",-     "line one\\nthis is a line\\nbreak in the second line "]-    [Just [" 0: line\\x0abreak"],-     Nothing,-     Nothing]-,-testRegex "line\\nbreak" [ERROR]-    ["this is a line\\nbreak",-     "** Failers ",-     "line one\\nthis is a line\\nbreak in the second line "]-    [Just [" 0: line\\x0abreak"],-     Nothing,-     Nothing]-,-testRegex "1234" []-    ["123\\P",-     "a4\\P\\R"]-    [Just ["Partial match: 123"],-     Nothing]-,-testRegex "1234" []-    ["123\\P",-     "4\\P\\R"]-    [Just ["Partial match: 123"],-     Just [" 0: 4"]]-,-testRegex "^" [ERROR]-    ["a\\nb\\nc\\n",-     "\\ ",-     "",-     "/(?<=C\\n)^/mg",-     "A\\nC\\nC\\n "]-    [Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: "],-     Just ["/(?<=C\\n)^/mg"],-     Just [" 0: "]]-,-testRegex "(?s)A?B" []-    ["AB",-     "aB  "]-    [Just [" 0: AB"],-     Just [" 0: B"]]-,-testRegex "(?s)A*B" []-    ["AB",-     "aB  "]-    [Just [" 0: AB"],-     Just [" 0: B"]]-,-testRegex "(?m)A?B" []-    ["AB",-     "aB  "]-    [Just [" 0: AB"],-     Just [" 0: B"]]-,-testRegex "(?m)A*B" []-    ["AB",-     "aB  "]-    [Just [" 0: AB"],-     Just [" 0: B"]]-,-testRegex "Content-Type\\x3A[^\\r\\n]{6,}" []-    ["Content-Type:xxxxxyyy "]-    [Just [" 0: Content-Type:xxxxxyyy"],-     Just [" 1: Content-Type:xxxxxyy"],-     Just [" 2: Content-Type:xxxxxy"]]-,-testRegex "Content-Type\\x3A[^\\r\\n]{6,}z" []-    ["Content-Type:xxxxxyyyz"]-    [Just [" 0: Content-Type:xxxxxyyyz"]]-,-testRegex "Content-Type\\x3A[^a]{6,}" []-    ["Content-Type:xxxyyy "]-    [Just [" 0: Content-Type:xxxyyy"]]-,-testRegex "Content-Type\\x3A[^a]{6,}z" []-    ["Content-Type:xxxyyyz"]-    [Just [" 0: Content-Type:xxxyyyz"]]-,-testRegex "^abc" [ERROR]-    ["xyz\\nabc",-     "xyz\\nabc\\<lf>",-     "xyz\\r\\nabc\\<lf>",-     "xyz\\rabc\\<cr>",-     "xyz\\r\\nabc\\<crlf>",-     "** Failers ",-     "xyz\\nabc\\<cr>",-     "xyz\\r\\nabc\\<cr>",-     "xyz\\nabc\\<crlf>",-     "xyz\\rabc\\<crlf>",-     "xyz\\rabc\\<lf>",-     "",-     "/abc$/m<lf>",-     "xyzabc",-     "xyzabc\\n ",-     "xyzabc\\npqr ",-     "xyzabc\\r\\<cr> ",-     "xyzabc\\rpqr\\<cr> ",-     "xyzabc\\r\\n\\<crlf> ",-     "xyzabc\\r\\npqr\\<crlf> ",-     "** Failers",-     "xyzabc\\r ",-     "xyzabc\\rpqr ",-     "xyzabc\\r\\n ",-     "xyzabc\\r\\npqr ",-     "",-     "/^abc/m<cr>",-     "xyz\\rabcdef",-     "xyz\\nabcdef\\<lf>",-     "** Failers  ",-     "xyz\\nabcdef",-     "",-     "/^abc/m<lf>",-     "xyz\\nabcdef",-     "xyz\\rabcdef\\<cr>",-     "** Failers  ",-     "xyz\\rabcdef",-     "",-     "/^abc/m<crlf>",-     "xyz\\r\\nabcdef",-     "xyz\\rabcdef\\<cr>",-     "** Failers  ",-     "xyz\\rabcdef",-     "",-     "/.*/<lf>",-     "abc\\ndef",-     "abc\\rdef",-     "abc\\r\\ndef",-     "\\<cr>abc\\ndef",-     "\\<cr>abc\\rdef",-     "\\<cr>abc\\r\\ndef",-     "\\<crlf>abc\\ndef",-     "\\<crlf>abc\\rdef",-     "\\<crlf>abc\\r\\ndef"]-    [Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/abc$/m<lf>"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^abc/m<cr>"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Just ["/^abc/m<lf>"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Just ["/^abc/m<crlf>"],-     Just [" 0: abc"],-     Just [" 0: abc"],-     Nothing,-     Nothing,-     Just ["/.*/<lf>"],-     Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 2: a"],-     Just [" 3: "],-     Just [" 0: abc\\x0ddef"],-     Just [" 1: abc\\x0dde"],-     Just [" 2: abc\\x0dd"],-     Just [" 3: abc\\x0d"],-     Just [" 4: abc"],-     Just [" 5: ab"],-     Just [" 6: a"],-     Just [" 7: "],-     Just [" 0: abc\\x0d"],-     Just [" 1: abc"],-     Just [" 2: ab"],-     Just [" 3: a"],-     Just [" 4: "],-     Just [" 0: abc\\x0adef"],-     Just [" 1: abc\\x0ade"],-     Just [" 2: abc\\x0ad"],-     Just [" 3: abc\\x0a"],-     Just [" 4: abc"],-     Just [" 5: ab"],-     Just [" 6: a"],-     Just [" 7: "],-     Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 2: a"],-     Just [" 3: "],-     Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 2: a"],-     Just [" 3: "],-     Just [" 0: abc\\x0adef"],-     Just [" 1: abc\\x0ade"],-     Just [" 2: abc\\x0ad"],-     Just [" 3: abc\\x0a"],-     Just [" 4: abc"],-     Just [" 5: ab"],-     Just [" 6: a"],-     Just [" 7: "],-     Just [" 0: abc\\x0ddef"],-     Just [" 1: abc\\x0dde"],-     Just [" 2: abc\\x0dd"],-     Just [" 3: abc\\x0d"],-     Just [" 4: abc"],-     Just [" 5: ab"],-     Just [" 6: a"],-     Just [" 7: "],-     Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 2: a"],-     Just [" 3: "]]-,-testRegex "\\w+(.)(.)?def" [ERROR]-    ["abc\\ndef",-     "abc\\rdef",-     "abc\\r\\ndef"]-    [Just [" 0: abc\\x0adef"],-     Just [" 0: abc\\x0ddef"],-     Just [" 0: abc\\x0d\\x0adef"]]-,-testRegex "^\\w+=.*(\\\\\\n.*)*" []-    ["abc=xyz\\\\\\npqr"]-    [Just [" 0: abc=xyz\\\\x0apqr"],-     Just [" 1: abc=xyz\\\\x0apq"],-     Just [" 2: abc=xyz\\\\x0ap"],-     Just [" 3: abc=xyz\\\\x0a"],-     Just [" 4: abc=xyz\\"],-     Just [" 5: abc=xyz"],-     Just [" 6: abc=xy"],-     Just [" 7: abc=x"],-     Just [" 8: abc="]]-,-testRegex "^(a()*)*" []-    ["aaaa"]-    [Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 4: "]]-,-testRegex "^(?:a(?:(?:))*)*" []-    ["aaaa"]-    [Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"],-     Just [" 4: "]]-,-testRegex "^(a()+)+" []-    ["aaaa"]-    [Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"]]-,-testRegex "^(?:a(?:(?:))+)+" []-    ["aaaa"]-    [Just [" 0: aaaa"],-     Just [" 1: aaa"],-     Just [" 2: aa"],-     Just [" 3: a"]]-,-testRegex "(a|)*\\d" []-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]]-,-testRegex "(?>a|)*\\d" []-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]]-,-testRegex "(?:a|)*\\d" []-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]-    [Nothing,-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"]]-,-testRegex "^a.b" [ERROR]-    ["a\\rb",-     "a\\nb\\<cr> ",-     "** Failers",-     "a\\nb",-     "a\\nb\\<any>",-     "a\\rb\\<cr>   ",-     "a\\rb\\<any>   "]-    [Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^abc." [ERROR]-    ["abc1 \\x0aabc2 \\x0babc3xx \\x0cabc4 \\x0dabc5xx \\x0d\\x0aabc6 \\x85abc7 \\x{2028}abc8 \\x{2029}abc9 JUNK"]-    [Just [" 0: abc1"],-     Just [" 0: abc2"],-     Just [" 0: abc3"],-     Just [" 0: abc4"],-     Just [" 0: abc5"],-     Just [" 0: abc6"],-     Just [" 0: abc7"]]-,-testRegex "abc.$" [ERROR]-    ["abc1\\x0a abc2\\x0b abc3\\x0c abc4\\x0d abc5\\x0d\\x0a abc6\\x85 abc7\\x{2028} abc8\\x{2029} abc9"]-    [Just [" 0: abc1"],-     Just [" 0: abc2"],-     Just [" 0: abc3"],-     Just [" 0: abc4"],-     Just [" 0: abc5"],-     Just [" 0: abc6"],-     Just [" 0: abc9"]]-,-testRegex "^a\\Rb" [ERROR]-    ["a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0cb",-     "a\\x85b   ",-     "** Failers",-     "a\\n\\rb    "]-    [Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x0bb"],-     Just [" 0: a\\x0cb"],-     Just [" 0: a\\x85b"],-     Nothing,-     Nothing]-,-testRegex "^a\\R*b" [ERROR]-    ["ab",-     "a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0cb",-     "a\\x85b   ",-     "a\\n\\rb    ",-     "a\\n\\r\\x85\\x0cb "]-    [Just [" 0: ab"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x0bb"],-     Just [" 0: a\\x0cb"],-     Just [" 0: a\\x85b"],-     Just [" 0: a\\x0a\\x0db"],-     Just [" 0: a\\x0a\\x0d\\x85\\x0cb"]]-,-testRegex "^a\\R+b" [ERROR]-    ["a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0cb",-     "a\\x85b   ",-     "a\\n\\rb    ",-     "a\\n\\r\\x85\\x0cb ",-     "** Failers",-     "ab  ",-     "",-     "/^a\\R{1,3}b/<bsr_unicode>",-     "a\\nb",-     "a\\n\\rb",-     "a\\n\\r\\x85b",-     "a\\r\\n\\r\\nb ",-     "a\\r\\n\\r\\n\\r\\nb ",-     "a\\n\\r\\n\\rb",-     "a\\n\\n\\r\\nb ",-     "** Failers",-     "a\\n\\n\\n\\rb",-     "a\\r"]-    [Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x0bb"],-     Just [" 0: a\\x0cb"],-     Just [" 0: a\\x85b"],-     Just [" 0: a\\x0a\\x0db"],-     Just [" 0: a\\x0a\\x0d\\x85\\x0cb"],-     Nothing,-     Nothing,-     Just ["/^a\\R{1,3}b/<bsr_unicode>"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0a\\x0db"],-     Just [" 0: a\\x0a\\x0d\\x85b"],-     Just [" 0: a\\x0d\\x0a\\x0d\\x0ab"],-     Just [" 0: a\\x0d\\x0a\\x0d\\x0a\\x0d\\x0ab"],-     Just [" 0: a\\x0a\\x0d\\x0a\\x0db"],-     Just [" 0: a\\x0a\\x0a\\x0d\\x0ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^a[\\R]b" [ERROR]-    ["aRb",-     "** Failers",-     "a\\nb  "]-    [Just [" 0: aRb"],-     Nothing,-     Nothing]-,-testRegex ".+foo" []-    ["afoo",-     "** Failers ",-     "\\r\\nfoo ",-     "\\nfoo "]-    [Just [" 0: afoo"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex ".+foo" [ERROR]-    ["afoo",-     "\\nfoo ",-     "** Failers ",-     "\\r\\nfoo "]-    [Just [" 0: afoo"],-     Just [" 0: \\x0afoo"],-     Nothing,-     Nothing]-,-testRegex ".+foo" [ERROR]-    ["afoo",-     "** Failers ",-     "\\nfoo ",-     "\\r\\nfoo "]-    [Just [" 0: afoo"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex ".+foo" [ERROR]-    ["afoo",-     "\\r\\nfoo ",-     "\\nfoo "]-    [Just [" 0: afoo"],-     Just [" 0: \\x0d\\x0afoo"],-     Just [" 0: \\x0afoo"]]-,-testRegex "^$" [ERROR]-    ["abc\\r\\rxyz",-     "abc\\n\\rxyz  ",-     "** Failers ",-     "abc\\r\\nxyz"]-    [Just [" 0: "],-     Just [" 0: "],-     Nothing,-     Nothing]-,-testRegex "^X" [ERROR]-    ["XABC",-     "** Failers ",-     "XABC\\B"]-    [Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "(?m)^$" [ERROR]-    ["abc\\r\\n\\r\\n"]-    [Just [" 0: "],-     Just [" 0+ \\x0d\\x0a"]]-,-testRegex "(?m)^$|^\\r\\n" [ERROR]-    ["abc\\r\\n\\r\\n",-     "",-     "/(?m)$/<any>g+ ",-     "abc\\r\\n\\r\\n"]-    [Just [" 0: \\x0d\\x0a"],-     Just [" 0+ "],-     Just [" 1: "],-     Just ["/(?m)$/<any>g+ "],-     Just [" 0: "],-     Just [" 0+ \\x0d\\x0a\\x0d\\x0a"],-     Just [" 0: "],-     Just [" 0+ \\x0d\\x0a"],-     Just [" 0: "],-     Just [" 0+ "]]-,-testRegex "(?|(abc)|(xyz))" []-    [">abc<",-     ">xyz< "]-    [Just [" 0: abc"],-     Just [" 0: xyz"]]-,-testRegex "(x)(?|(abc)|(xyz))(x)" []-    ["xabcx",-     "xxyzx "]-    [Just [" 0: xabcx"],-     Just [" 0: xxyzx"]]-,-testRegex "(x)(?|(abc)(pqr)|(xyz))(x)" []-    ["xabcpqrx",-     "xxyzx "]-    [Just [" 0: xabcpqrx"],-     Just [" 0: xxyzx"]]-,-testRegex "(?|(abc)|(xyz))(?1)" []-    ["abcabc",-     "xyzabc ",-     "** Failers ",-     "xyzxyz ",-     "",-     "/\\H\\h\\V\\v/",-     "X X\\x0a",-     "X\\x09X\\x0b",-     "** Failers",-     "\\xa0 X\\x0a   ",-     "",-     "/\\H*\\h+\\V?\\v{3,4}/ ",-     "\\x09\\x20\\xa0X\\x0a\\x0b\\x0c\\x0d\\x0a",-     "\\x09\\x20\\xa0\\x0a\\x0b\\x0c\\x0d\\x0a",-     "\\x09\\x20\\xa0\\x0a\\x0b\\x0c",-     "** Failers ",-     "\\x09\\x20\\xa0\\x0a\\x0b",-     "",-     "/\\H{3,4}/",-     "XY  ABCDE",-     "XY  PQR ST ",-     "",-     "/.\\h{3,4}./",-     "XY  AB    PQRS"]-    [Just [" 0: abcabc"],-     Just [" 0: xyzabc"],-     Nothing,-     Nothing,-     Just ["/\\H\\h\\V\\v/"],-     Just [" 0: X X\\x0a"],-     Just [" 0: X\\x09X\\x0b"],-     Nothing,-     Nothing,-     Just ["/\\H*\\h+\\V?\\v{3,4}/ "],-     Just [" 0: \\x09 \\xa0X\\x0a\\x0b\\x0c\\x0d"],-     Just [" 1: \\x09 \\xa0X\\x0a\\x0b\\x0c"],-     Just [" 0: \\x09 \\xa0\\x0a\\x0b\\x0c\\x0d"],-     Just [" 1: \\x09 \\xa0\\x0a\\x0b\\x0c"],-     Just [" 0: \\x09 \\xa0\\x0a\\x0b\\x0c"],-     Nothing,-     Nothing,-     Just ["/\\H{3,4}/"],-     Just [" 0: ABCD"],-     Just [" 1: ABC"],-     Just [" 0: PQR"],-     Just ["/.\\h{3,4}./"],-     Just [" 0: B    P"],-     Just [" 1: B    "]]-,-testRegex "\\h*X\\h?\\H+Y\\H?Z" []-    [">XNNNYZ",-     ">  X NYQZ",-     "** Failers",-     ">XYZ   ",-     ">  X NY Z"]-    [Just [" 0: XNNNYZ"],-     Just [" 0:   X NYQZ"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\v*X\\v?Y\\v+Z\\V*\\x0a\\V+\\x0b\\V{2,3}\\x0c" []-    [">XY\\x0aZ\\x0aA\\x0bNN\\x0c",-     ">\\x0a\\x0dX\\x0aY\\x0a\\x0bZZZ\\x0aAAA\\x0bNNN\\x0c"]-    [Just [" 0: XY\\x0aZ\\x0aA\\x0bNN\\x0c"],-     Just [" 0: \\x0a\\x0dX\\x0aY\\x0a\\x0bZZZ\\x0aAAA\\x0bNNN\\x0c"]]-,-testRegex ".+A" [ERROR]-    ["\\r\\nA",-     "",-     "/\\nA/<crlf>",-     "\\r\\nA "]-    [Nothing,-     Just ["/\\nA/<crlf>"],-     Just [" 0: \\x0aA"]]-,-testRegex "[\\r\\n]A" [ERROR]-    ["\\r\\nA "]-    [Just [" 0: \\x0aA"]]-,-testRegex "(\\r|\\n)A" [ERROR]-    ["\\r\\nA "]-    [Just [" 0: \\x0aA"]]-,-testRegex "a\\Rb" [ERROR]-    ["a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "** Failers",-     "a\\x85b",-     "a\\x0bb     "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0d\\x0ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\Rb" [ERROR]-    ["a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "a\\x85b",-     "a\\x0bb     ",-     "** Failers ",-     "a\\x85b\\<bsr_anycrlf>",-     "a\\x0bb\\<bsr_anycrlf>",-     "",-     "/a\\R?b/I<bsr_anycrlf>",-     "a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "** Failers",-     "a\\x85b",-     "a\\x0bb     "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_unicode"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x85b"],-     Just [" 0: a\\x0bb"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/a\\R?b/I<bsr_anycrlf>"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0d\\x0ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\R?b" [ERROR]-    ["a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "a\\x85b",-     "a\\x0bb     ",-     "** Failers ",-     "a\\x85b\\<bsr_anycrlf>",-     "a\\x0bb\\<bsr_anycrlf>",-     "",-     "/a\\R{2,4}b/I<bsr_anycrlf>",-     "a\\r\\n\\nb",-     "a\\n\\r\\rb",-     "a\\r\\n\\r\\n\\r\\n\\r\\nb",-     "** Failers",-     "a\\x85\\85b",-     "a\\x0b\\0bb     "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_unicode"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0db"],-     Just [" 0: a\\x0ab"],-     Just [" 0: a\\x0d\\x0ab"],-     Just [" 0: a\\x85b"],-     Just [" 0: a\\x0bb"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/a\\R{2,4}b/I<bsr_anycrlf>"],-     Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: bsr_anycrlf"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0d\\x0a\\x0ab"],-     Just [" 0: a\\x0a\\x0d\\x0db"],-     Just [" 0: a\\x0d\\x0a\\x0d\\x0a\\x0d\\x0a\\x0d\\x0ab"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\R{2,4}b" [ERROR]-    ["a\\r\\rb",-     "a\\n\\n\\nb",-     "a\\r\\n\\n\\r\\rb",-     "a\\x85\\85b",-     "a\\x0b\\0bb     ",-     "** Failers ",-     "a\\r\\r\\r\\r\\rb ",-     "a\\x85\\85b\\<bsr_anycrlf>",-     "a\\x0b\\0bb\\<bsr_anycrlf>"]-    [Just ["Capturing subpattern count = 0"],-     Just ["Partial matching not supported"],-     Just ["Options: bsr_unicode"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x0d\\x0db"],-     Just [" 0: a\\x0a\\x0a\\x0ab"],-     Just [" 0: a\\x0d\\x0a\\x0a\\x0d\\x0db"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex " End of testinput7 " []-    []-    []
− tests/testdata/regex8.tests
@@ -1,1313 +0,0 @@-testRegex "-- Do not use the \\x{} construct except with patterns that have the --" []-    ["/-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/",-     "/-- that option is set. However, the latest Perls recognize them always. --/"]-    [Just ["/-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/"],-     Nothing,-     Just ["/-- that option is set. However, the latest Perls recognize them always. --/"],-     Nothing]-,-testRegex "\\x{100}ab" [ERROR]-    ["\\x{100}ab",-     "",-     "/a\\x{100}*b/8",-     "ab",-     "a\\x{100}b  ",-     "a\\x{100}\\x{100}b  ",-     "",-     "/a\\x{100}+b/8",-     "a\\x{100}b  ",-     "a\\x{100}\\x{100}b  ",-     "*** Failers ",-     "ab",-     "",-     "/\\bX/8",-     "Xoanon",-     "+Xoanon",-     "\\x{300}Xoanon ",-     "*** Failers ",-     "YXoanon  ",-     "",-     "/\\BX/8",-     "YXoanon",-     "*** Failers",-     "Xoanon",-     "+Xoanon    ",-     "\\x{300}Xoanon "]-    [Just [" 0: \\x{100}ab"],-     Just ["/a\\x{100}*b/8"],-     Just [" 0: ab"],-     Just [" 0: a\\x{100}b"],-     Just [" 0: a\\x{100}\\x{100}b"],-     Just ["/a\\x{100}+b/8"],-     Just [" 0: a\\x{100}b"],-     Just [" 0: a\\x{100}\\x{100}b"],-     Nothing,-     Nothing,-     Just ["/\\bX/8"],-     Just [" 0: X"],-     Just [" 0: X"],-     Just [" 0: X"],-     Nothing,-     Nothing,-     Just ["/\\BX/8"],-     Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "X\\b" [ERROR]-    ["X+oanon",-     "ZX\\x{300}oanon ",-     "FAX ",-     "*** Failers ",-     "Xoanon  ",-     "",-     "/X\\B/8",-     "Xoanon  ",-     "*** Failers",-     "X+oanon",-     "ZX\\x{300}oanon ",-     "FAX ",-     "",-     "/[^a]/8",-     "abcd",-     "a\\x{100}   "]-    [Just [" 0: X"],-     Just [" 0: X"],-     Just [" 0: X"],-     Nothing,-     Nothing,-     Just ["/X\\B/8"],-     Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/[^a]/8"],-     Just [" 0: b"],-     Just [" 0: \\x{100}"]]-,-testRegex "^[abc\\x{123}\\x{400}-\\x{402}]{2,3}\\d" [ERROR]-    ["ab99",-     "\\x{123}\\x{123}45",-     "\\x{400}\\x{401}\\x{402}6  ",-     "*** Failers",-     "d99",-     "\\x{123}\\x{122}4   ",-     "\\x{400}\\x{403}6  ",-     "\\x{400}\\x{401}\\x{402}\\x{402}6  "]-    [Just [" 0: ab9"],-     Just [" 0: \\x{123}\\x{123}4"],-     Just [" 0: \\x{400}\\x{401}\\x{402}6"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "abc" [ERROR]-    ["\195]",-     "\195",-     "\195\195\195",-     "\195\195\195\\?"]-    [Just ["Error -10"],-     Just ["Error -10"],-     Just ["Error -10"],-     Nothing]-,-testRegex "a.b" [ERROR]-    ["acb",-     "a\\x7fb",-     "a\\x{100}b ",-     "*** Failers",-     "a\\nb  "]-    [Just [" 0: acb"],-     Just [" 0: a\\x{7f}b"],-     Just [" 0: a\\x{100}b"],-     Nothing,-     Nothing]-,-testRegex "a(.{3})b" [ERROR]-    ["a\\x{4000}xyb ",-     "a\\x{4000}\\x7fyb ",-     "a\\x{4000}\\x{100}yb ",-     "*** Failers",-     "a\\x{4000}b ",-     "ac\\ncb "]-    [Just [" 0: a\\x{4000}xyb"],-     Just [" 0: a\\x{4000}\\x{7f}yb"],-     Just [" 0: a\\x{4000}\\x{100}yb"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a(.*?)(.)" []-    ["a\\xc0\\x88b"]-    [Just [" 0: a\\xc0\\x88b"],-     Just [" 1: a\\xc0\\x88"],-     Just [" 2: a\\xc0"]]-,-testRegex "a(.*?)(.)" [ERROR]-    ["a\\x{100}b"]-    [Just [" 0: a\\x{100}b"],-     Just [" 1: a\\x{100}"]]-,-testRegex "a(.*)(.)" []-    ["a\\xc0\\x88b"]-    [Just [" 0: a\\xc0\\x88b"],-     Just [" 1: a\\xc0\\x88"],-     Just [" 2: a\\xc0"]]-,-testRegex "a(.*)(.)" [ERROR]-    ["a\\x{100}b"]-    [Just [" 0: a\\x{100}b"],-     Just [" 1: a\\x{100}"]]-,-testRegex "a(.)(.)" []-    ["a\\xc0\\x92bcd"]-    [Just [" 0: a\\xc0\\x92"]]-,-testRegex "a(.)(.)" [ERROR]-    ["a\\x{240}bcd"]-    [Just [" 0: a\\x{240}b"]]-,-testRegex "a(.?)(.)" []-    ["a\\xc0\\x92bcd"]-    [Just [" 0: a\\xc0\\x92"],-     Just [" 1: a\\xc0"]]-,-testRegex "a(.?)(.)" [ERROR]-    ["a\\x{240}bcd"]-    [Just [" 0: a\\x{240}b"],-     Just [" 1: a\\x{240}"]]-,-testRegex "a(.??)(.)" []-    ["a\\xc0\\x92bcd"]-    [Just [" 0: a\\xc0\\x92"],-     Just [" 1: a\\xc0"]]-,-testRegex "a(.??)(.)" [ERROR]-    ["a\\x{240}bcd"]-    [Just [" 0: a\\x{240}b"],-     Just [" 1: a\\x{240}"]]-,-testRegex "a(.{3})b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "*** Failers",-     "a\\x{1234}b ",-     "ac\\ncb "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a(.{3,})b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "axxxxbcdefghijb ",-     "a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b ",-     "*** Failers",-     "a\\x{1234}b "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 0: axxxxbcdefghijb"],-     Just [" 1: axxxxb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b"],-     Nothing,-     Nothing]-,-testRegex "a(.{3,}?)b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "axxxxbcdefghijb ",-     "a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b ",-     "*** Failers",-     "a\\x{1234}b "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 0: axxxxbcdefghijb"],-     Just [" 1: axxxxb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b"],-     Nothing,-     Nothing]-,-testRegex "a(.{3,5})b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "axxxxbcdefghijb ",-     "a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b ",-     "axbxxbcdefghijb ",-     "axxxxxbcdefghijb ",-     "*** Failers",-     "a\\x{1234}b ",-     "axxxxxxbcdefghijb "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 0: axxxxb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b"],-     Just [" 0: axbxxb"],-     Just [" 0: axxxxxb"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a(.{3,5}?)b" [ERROR]-    ["a\\x{1234}xyb ",-     "a\\x{1234}\\x{4321}yb ",-     "a\\x{1234}\\x{4321}\\x{3412}b ",-     "axxxxbcdefghijb ",-     "a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b ",-     "axbxxbcdefghijb ",-     "axxxxxbcdefghijb ",-     "*** Failers",-     "a\\x{1234}b ",-     "axxxxxxbcdefghijb "]-    [Just [" 0: a\\x{1234}xyb"],-     Just [" 0: a\\x{1234}\\x{4321}yb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}b"],-     Just [" 0: axxxxb"],-     Just [" 0: a\\x{1234}\\x{4321}\\x{3412}\\x{3421}b"],-     Just [" 0: axbxxb"],-     Just [" 0: axxxxxb"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[a\\x{c0}]" [ERROR]-    ["*** Failers",-     "\\x{100}"]-    [Nothing,-     Nothing]-,-testRegex "(?<=aXb)cd" [ERROR]-    ["aXbcd"]-    [Just [" 0: cd"]]-,-testRegex "(?<=a\\x{100}b)cd" [ERROR]-    ["a\\x{100}bcd"]-    [Just [" 0: cd"]]-,-testRegex "(?<=a\\x{100000}b)cd" [ERROR]-    ["a\\x{100000}bcd",-     "",-     "/(?:\\x{100}){3}b/8",-     "\\x{100}\\x{100}\\x{100}b",-     "*** Failers ",-     "\\x{100}\\x{100}b"]-    [Just [" 0: cd"],-     Just ["/(?:\\x{100}){3}b/8"],-     Just [" 0: \\x{100}\\x{100}\\x{100}b"],-     Nothing,-     Nothing]-,-testRegex "\\x{ab}" [ERROR]-    ["\\x{ab} ",-     "\\xc2\\xab",-     "*** Failers ",-     "\\x00{ab}"]-    [Just [" 0: \\x{ab}"],-     Just [" 0: \\x{ab}"],-     Nothing,-     Nothing]-,-testRegex "(?<=(.))X" [ERROR]-    ["WXYZ",-     "\\x{256}XYZ ",-     "*** Failers",-     "XYZ "]-    [Just [" 0: X"],-     Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "[^a]+" [ERROR]-    ["bcd",-     "\\x{100}aY\\x{256}Z ",-     "",-     "/^[^a]{2}/8",-     "\\x{100}bc",-     "",-     "/^[^a]{2,}/8",-     "\\x{100}bcAa"]-    [Just [" 0: bcd"],-     Just [" 1: bc"],-     Just [" 2: b"],-     Just [" 0: \\x{100}"],-     Just [" 0: Y\\x{256}Z"],-     Just [" 1: Y\\x{256}"],-     Just [" 2: Y"],-     Just ["/^[^a]{2}/8"],-     Just [" 0: \\x{100}b"],-     Just ["/^[^a]{2,}/8"],-     Just [" 0: \\x{100}bcA"],-     Just [" 1: \\x{100}bc"],-     Just [" 2: \\x{100}b"]]-,-testRegex "^[^a]{2,}?" [ERROR]-    ["\\x{100}bca"]-    [Just [" 0: \\x{100}bc"],-     Just [" 1: \\x{100}b"]]-,-testRegex "[^a]+" [ERROR]-    ["bcd",-     "\\x{100}aY\\x{256}Z ",-     "",-     "/^[^a]{2}/8i",-     "\\x{100}bc",-     "",-     "/^[^a]{2,}/8i",-     "\\x{100}bcAa"]-    [Just [" 0: bcd"],-     Just [" 1: bc"],-     Just [" 2: b"],-     Just [" 0: \\x{100}"],-     Just [" 0: Y\\x{256}Z"],-     Just [" 1: Y\\x{256}"],-     Just [" 2: Y"],-     Just ["/^[^a]{2}/8i"],-     Just [" 0: \\x{100}b"],-     Just ["/^[^a]{2,}/8i"],-     Just [" 0: \\x{100}bc"],-     Just [" 1: \\x{100}b"]]-,-testRegex "^[^a]{2,}?" [caseless]-    ["\\x{100}bca"]-    [Just [" 0: \\x{100}bc"],-     Just [" 1: \\x{100}b"]]-,-testRegex "\\x{100}{0,0}" [ERROR]-    ["abcd",-     "",-     "/\\x{100}?/8",-     "abcd",-     "\\x{100}\\x{100} "]-    [Just [" 0: "],-     Just ["/\\x{100}?/8"],-     Just [" 0: "],-     Just [" 0: \\x{100}"],-     Just [" 1: "]]-,-testRegex "\\x{100}{0,3}" [ERROR]-    ["\\x{100}\\x{100} ",-     "\\x{100}\\x{100}\\x{100}\\x{100} ",-     "",-     "/\\x{100}*/8",-     "abce",-     "\\x{100}\\x{100}\\x{100}\\x{100} "]-    [Just [" 0: \\x{100}\\x{100}"],-     Just [" 1: \\x{100}"],-     Just [" 2: "],-     Just [" 0: \\x{100}\\x{100}\\x{100}"],-     Just [" 1: \\x{100}\\x{100}"],-     Just [" 2: \\x{100}"],-     Just [" 3: "],-     Just ["/\\x{100}*/8"],-     Just [" 0: "],-     Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 1: \\x{100}\\x{100}\\x{100}"],-     Just [" 2: \\x{100}\\x{100}"],-     Just [" 3: \\x{100}"],-     Just [" 4: "]]-,-testRegex "\\x{100}{1,1}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100} "]-    [Just [" 0: \\x{100}"]]-,-testRegex "\\x{100}{1,3}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100} "]-    [Just [" 0: \\x{100}\\x{100}\\x{100}"],-     Just [" 1: \\x{100}\\x{100}"],-     Just [" 2: \\x{100}"]]-,-testRegex "\\x{100}+" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100} "]-    [Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 1: \\x{100}\\x{100}\\x{100}"],-     Just [" 2: \\x{100}\\x{100}"],-     Just [" 3: \\x{100}"]]-,-testRegex "\\x{100}{3}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}XX"]-    [Just [" 0: \\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\x{100}{3,5}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}XX"]-    [Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 1: \\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 2: \\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\x{100}{3,}" [ERROR]-    ["abcd\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}XX"]-    [Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 1: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 2: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 3: \\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 4: \\x{100}\\x{100}\\x{100}"]]-,-testRegex "(?<=a\\x{100}{2}b)X" [ERROR]-    ["Xyyya\\x{100}\\x{100}bXzzz"]-    [Just [" 0: X"]]-,-testRegex "\\D*" [ERROR]-    ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Just ["Matched, but too many subsidiary matches"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "\\D*" [ERROR]-    ["\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"]-    [Just ["Matched, but too many subsidiary matches"],-     Just [" 0: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 1: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 2: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 3: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 4: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 5: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 6: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 7: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 8: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just [" 9: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["10: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["11: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["12: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["13: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["14: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["15: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["16: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["17: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["18: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["19: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["20: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"],-     Just ["21: \\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}\\x{100}"]]-,-testRegex "\\D" [ERROR]-    ["1X2",-     "1\\x{100}2 ",-     "",-     "/>\\S/8",-     "> >X Y",-     "> >\\x{100} Y",-     "",-     "/\\d/8",-     "\\x{100}3",-     "",-     "/\\s/8",-     "\\x{100} X",-     "",-     "/\\D+/8",-     "12abcd34",-     "*** Failers",-     "1234  "]-    [Just [" 0: X"],-     Just [" 0: \\x{100}"],-     Just ["/>\\S/8"],-     Just [" 0: >X"],-     Just [" 0: >\\x{100}"],-     Just ["/\\d/8"],-     Just [" 0: 3"],-     Just ["/\\s/8"],-     Just [" 0:  "],-     Just ["/\\D+/8"],-     Just [" 0: abcd"],-     Just [" 1: abc"],-     Just [" 2: ab"],-     Just [" 3: a"],-     Just [" 0: *** Failers"],-     Just [" 1: *** Failer"],-     Just [" 2: *** Faile"],-     Just [" 3: *** Fail"],-     Just [" 4: *** Fai"],-     Just [" 5: *** Fa"],-     Just [" 6: *** F"],-     Just [" 7: *** "],-     Just [" 8: ***"],-     Just [" 9: **"],-     Just ["10: *"],-     Nothing]-,-testRegex "\\D{2,3}" [ERROR]-    ["12abcd34",-     "12ab34",-     "*** Failers  ",-     "1234",-     "12a34  "]-    [Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 0: ab"],-     Just [" 0: ***"],-     Just [" 1: **"],-     Nothing,-     Nothing]-,-testRegex "\\D{2,3}?" [ERROR]-    ["12abcd34",-     "12ab34",-     "*** Failers  ",-     "1234",-     "12a34  "]-    [Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 0: ab"],-     Just [" 0: ***"],-     Just [" 1: **"],-     Nothing,-     Nothing]-,-testRegex "\\d+" [ERROR]-    ["12abcd34",-     "*** Failers"]-    [Just [" 0: 12"],-     Just [" 1: 1"],-     Nothing]-,-testRegex "\\d{2,3}" [ERROR]-    ["12abcd34",-     "1234abcd",-     "*** Failers  ",-     "1.4 "]-    [Just [" 0: 12"],-     Just [" 0: 123"],-     Just [" 1: 12"],-     Nothing,-     Nothing]-,-testRegex "\\d{2,3}?" [ERROR]-    ["12abcd34",-     "1234abcd",-     "*** Failers  ",-     "1.4 "]-    [Just [" 0: 12"],-     Just [" 0: 123"],-     Just [" 1: 12"],-     Nothing,-     Nothing]-,-testRegex "\\S+" [ERROR]-    ["12abcd34",-     "*** Failers",-     "\\    \\ "]-    [Just [" 0: 12abcd34"],-     Just [" 1: 12abcd3"],-     Just [" 2: 12abcd"],-     Just [" 3: 12abc"],-     Just [" 4: 12ab"],-     Just [" 5: 12a"],-     Just [" 6: 12"],-     Just [" 7: 1"],-     Just [" 0: ***"],-     Just [" 1: **"],-     Just [" 2: *"],-     Nothing]-,-testRegex "\\S{2,3}" [ERROR]-    ["12abcd34",-     "1234abcd",-     "*** Failers",-     "\\     \\  "]-    [Just [" 0: 12a"],-     Just [" 1: 12"],-     Just [" 0: 123"],-     Just [" 1: 12"],-     Just [" 0: ***"],-     Just [" 1: **"],-     Nothing]-,-testRegex "\\S{2,3}?" [ERROR]-    ["12abcd34",-     "1234abcd",-     "*** Failers",-     "\\     \\  "]-    [Just [" 0: 12a"],-     Just [" 1: 12"],-     Just [" 0: 123"],-     Just [" 1: 12"],-     Just [" 0: ***"],-     Just [" 1: **"],-     Nothing]-,-testRegex ">\\s+<" [ERROR]-    ["12>      <34",-     "*** Failers"]-    [Just [" 0: >      <"],-     Nothing]-,-testRegex ">\\s{2,3}<" [ERROR]-    ["ab>  <cd",-     "ab>   <ce",-     "*** Failers",-     "ab>    <cd "]-    [Just [" 0: >  <"],-     Just [" 0: >   <"],-     Nothing,-     Nothing]-,-testRegex ">\\s{2,3}?<" [ERROR]-    ["ab>  <cd",-     "ab>   <ce",-     "*** Failers",-     "ab>    <cd "]-    [Just [" 0: >  <"],-     Just [" 0: >   <"],-     Nothing,-     Nothing]-,-testRegex "\\w+" [ERROR]-    ["12      34",-     "*** Failers",-     "+++=*! "]-    [Just [" 0: 12"],-     Just [" 1: 1"],-     Just [" 0: Failers"],-     Just [" 1: Failer"],-     Just [" 2: Faile"],-     Just [" 3: Fail"],-     Just [" 4: Fai"],-     Just [" 5: Fa"],-     Just [" 6: F"],-     Nothing]-,-testRegex "\\w{2,3}" [ERROR]-    ["ab  cd",-     "abcd ce",-     "*** Failers",-     "a.b.c"]-    [Just [" 0: ab"],-     Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 0: Fai"],-     Just [" 1: Fa"],-     Nothing]-,-testRegex "\\w{2,3}?" [ERROR]-    ["ab  cd",-     "abcd ce",-     "*** Failers",-     "a.b.c"]-    [Just [" 0: ab"],-     Just [" 0: abc"],-     Just [" 1: ab"],-     Just [" 0: Fai"],-     Just [" 1: Fa"],-     Nothing]-,-testRegex "\\W+" [ERROR]-    ["12====34",-     "*** Failers",-     "abcd "]-    [Just [" 0: ===="],-     Just [" 1: ==="],-     Just [" 2: =="],-     Just [" 3: ="],-     Just [" 0: *** "],-     Just [" 1: ***"],-     Just [" 2: **"],-     Just [" 3: *"],-     Nothing]-,-testRegex "\\W{2,3}" [ERROR]-    ["ab====cd",-     "ab==cd",-     "*** Failers",-     "a.b.c"]-    [Just [" 0: ==="],-     Just [" 1: =="],-     Just [" 0: =="],-     Just [" 0: ***"],-     Just [" 1: **"],-     Nothing]-,-testRegex "\\W{2,3}?" [ERROR]-    ["ab====cd",-     "ab==cd",-     "*** Failers",-     "a.b.c"]-    [Just [" 0: ==="],-     Just [" 1: =="],-     Just [" 0: =="],-     Just [" 0: ***"],-     Just [" 1: **"],-     Nothing]-,-testRegex "[\\x{100}]" [ERROR]-    ["\\x{100}",-     "Z\\x{100}",-     "\\x{100}Z",-     "*** Failers "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{100}"],-     Just [" 0: \\x{100}"],-     Nothing]-,-testRegex "[Z\\x{100}]" [ERROR]-    ["Z\\x{100}",-     "\\x{100}",-     "\\x{100}Z",-     "*** Failers "]-    [Just [" 0: Z"],-     Just [" 0: \\x{100}"],-     Just [" 0: \\x{100}"],-     Nothing]-,-testRegex "[\\x{100}\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Nothing]-,-testRegex "[\\x{100}-\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{111}cd ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{111}"],-     Nothing]-,-testRegex "[z-\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{111}cd ",-     "abzcd",-     "ab|cd  ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{111}"],-     Just [" 0: z"],-     Just [" 0: |"],-     Nothing]-,-testRegex "[Q\\x{100}\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "Q? ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: Q"],-     Nothing]-,-testRegex "[Q\\x{100}-\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{111}cd ",-     "Q? ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{111}"],-     Just [" 0: Q"],-     Nothing]-,-testRegex "[Qz-\\x{200}]" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{111}cd ",-     "abzcd",-     "ab|cd  ",-     "Q? ",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{111}"],-     Just [" 0: z"],-     Just [" 0: |"],-     Just [" 0: Q"],-     Nothing]-,-testRegex "[\\x{100}\\x{200}]{1,3}" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{200}\\x{100}\\x{200}\\x{100}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{200}\\x{100}\\x{200}"],-     Just [" 1: \\x{200}\\x{100}"],-     Just [" 2: \\x{200}"],-     Nothing]-,-testRegex "[\\x{100}\\x{200}]{1,3}?" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{200}\\x{100}\\x{200}\\x{100}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{200}\\x{100}\\x{200}"],-     Just [" 1: \\x{200}\\x{100}"],-     Just [" 2: \\x{200}"],-     Nothing]-,-testRegex "[Q\\x{100}\\x{200}]{1,3}" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{200}\\x{100}\\x{200}\\x{100}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{200}\\x{100}\\x{200}"],-     Just [" 1: \\x{200}\\x{100}"],-     Just [" 2: \\x{200}"],-     Nothing]-,-testRegex "[Q\\x{100}\\x{200}]{1,3}?" [ERROR]-    ["ab\\x{100}cd",-     "ab\\x{200}cd",-     "ab\\x{200}\\x{100}\\x{200}\\x{100}cd",-     "*** Failers  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{200}"],-     Just [" 0: \\x{200}\\x{100}\\x{200}"],-     Just [" 1: \\x{200}\\x{100}"],-     Just [" 2: \\x{200}"],-     Nothing]-,-testRegex "(?<=[\\x{100}\\x{200}])X" [ERROR]-    ["abc\\x{200}X",-     "abc\\x{100}X ",-     "*** Failers",-     "X  "]-    [Just [" 0: X"],-     Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "(?<=[Q\\x{100}\\x{200}])X" [ERROR]-    ["abc\\x{200}X",-     "abc\\x{100}X ",-     "abQX ",-     "*** Failers",-     "X  "]-    [Just [" 0: X"],-     Just [" 0: X"],-     Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "(?<=[\\x{100}\\x{200}]{3})X" [ERROR]-    ["abc\\x{100}\\x{200}\\x{100}X",-     "*** Failers",-     "abc\\x{200}X",-     "X  "]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[^\\x{100}\\x{200}]X" [ERROR]-    ["AX",-     "\\x{150}X",-     "\\x{500}X ",-     "*** Failers",-     "\\x{100}X",-     "\\x{200}X   "]-    [Just [" 0: AX"],-     Just [" 0: \\x{150}X"],-     Just [" 0: \\x{500}X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[^Q\\x{100}\\x{200}]X" [ERROR]-    ["AX",-     "\\x{150}X",-     "\\x{500}X ",-     "*** Failers",-     "\\x{100}X",-     "\\x{200}X   ",-     "QX "]-    [Just [" 0: AX"],-     Just [" 0: \\x{150}X"],-     Just [" 0: \\x{500}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[^\\x{100}-\\x{200}]X" [ERROR]-    ["AX",-     "\\x{500}X ",-     "*** Failers",-     "\\x{100}X",-     "\\x{150}X",-     "\\x{200}X   "]-    [Just [" 0: AX"],-     Just [" 0: \\x{500}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[z-\\x{100}]" [caseless]-    ["z",-     "Z ",-     "\\x{100}",-     "*** Failers",-     "\\x{102}",-     "y    "]-    [Just [" 0: z"],-     Just [" 0: Z"],-     Just [" 0: \\x{100}"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[\\xFF]" []-    [">\\xff<"]-    [Just [" 0: \\xff"]]-,-testRegex "[\\xff]" [ERROR]-    [">\\x{ff}<"]-    [Just [" 0: \\x{ff}"]]-,-testRegex "[^\\xFF]" []-    ["XYZ"]-    [Just [" 0: X"]]-,-testRegex "[^\\xff]" [ERROR]-    ["XYZ",-     "\\x{123} "]-    [Just [" 0: X"],-     Just [" 0: \\x{123}"]]-,-testRegex "^[ac]*b" [ERROR]-    ["xb"]-    [Nothing]-,-testRegex "^[ac\\x{100}]*b" [ERROR]-    ["xb"]-    [Nothing]-,-testRegex "^[^x]*b" [caseless]-    ["xb"]-    [Nothing]-,-testRegex "^[^x]*b" [ERROR]-    ["xb",-     "",-     "/^\\d*b/8",-     "xb "]-    [Nothing,-     Just ["/^\\d*b/8"],-     Nothing]-,-testRegex "(|a)" [ERROR]-    ["catac",-     "a\\x{256}a "]-    [Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: "],-     Just [" 0: a"],-     Just [" 1: "],-     Just [" 0: "]]-,-testRegex "^\\x{85}$" [caseless]-    ["\\x{85}"]-    [Just [" 0: \\x{85}"]]-,-testRegex "^abc." [ERROR]-    ["abc1 \\x0aabc2 \\x0babc3xx \\x0cabc4 \\x0dabc5xx \\x0d\\x0aabc6 \\x{0085}abc7 \\x{2028}abc8 \\x{2029}abc9 JUNK"]-    [Just [" 0: abc1"],-     Just [" 0: abc2"],-     Just [" 0: abc3"],-     Just [" 0: abc4"],-     Just [" 0: abc5"],-     Just [" 0: abc6"],-     Just [" 0: abc7"],-     Just [" 0: abc8"],-     Just [" 0: abc9"]]-,-testRegex "abc.$" [ERROR]-    ["abc1\\x0a abc2\\x0b abc3\\x0c abc4\\x0d abc5\\x0d\\x0a abc6\\x{0085} abc7\\x{2028} abc8\\x{2029} abc9"]-    [Just [" 0: abc1"],-     Just [" 0: abc2"],-     Just [" 0: abc3"],-     Just [" 0: abc4"],-     Just [" 0: abc5"],-     Just [" 0: abc6"],-     Just [" 0: abc7"],-     Just [" 0: abc8"],-     Just [" 0: abc9"]]-,-testRegex "^a\\Rb" [ERROR]-    ["a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0cb",-     "a\\x{85}b   ",-     "a\\x{2028}b ",-     "a\\x{2029}b ",-     "** Failers",-     "a\\n\\rb    "]-    [Just [" 0: a\\x{0a}b"],-     Just [" 0: a\\x{0d}b"],-     Just [" 0: a\\x{0d}\\x{0a}b"],-     Just [" 0: a\\x{0b}b"],-     Just [" 0: a\\x{0c}b"],-     Just [" 0: a\\x{85}b"],-     Just [" 0: a\\x{2028}b"],-     Just [" 0: a\\x{2029}b"],-     Nothing,-     Nothing]-,-testRegex "^a\\R*b" [ERROR]-    ["ab",-     "a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0c\\x{2028}\\x{2029}b",-     "a\\x{85}b   ",-     "a\\n\\rb    ",-     "a\\n\\r\\x{85}\\x0cb "]-    [Just [" 0: ab"],-     Just [" 0: a\\x{0a}b"],-     Just [" 0: a\\x{0d}b"],-     Just [" 0: a\\x{0d}\\x{0a}b"],-     Just [" 0: a\\x{0b}b"],-     Just [" 0: a\\x{0c}\\x{2028}\\x{2029}b"],-     Just [" 0: a\\x{85}b"],-     Just [" 0: a\\x{0a}\\x{0d}b"],-     Just [" 0: a\\x{0a}\\x{0d}\\x{85}\\x{0c}b"]]-,-testRegex "^a\\R+b" [ERROR]-    ["a\\nb",-     "a\\rb",-     "a\\r\\nb",-     "a\\x0bb",-     "a\\x0c\\x{2028}\\x{2029}b",-     "a\\x{85}b   ",-     "a\\n\\rb    ",-     "a\\n\\r\\x{85}\\x0cb ",-     "** Failers",-     "ab  "]-    [Just [" 0: a\\x{0a}b"],-     Just [" 0: a\\x{0d}b"],-     Just [" 0: a\\x{0d}\\x{0a}b"],-     Just [" 0: a\\x{0b}b"],-     Just [" 0: a\\x{0c}\\x{2028}\\x{2029}b"],-     Just [" 0: a\\x{85}b"],-     Just [" 0: a\\x{0a}\\x{0d}b"],-     Just [" 0: a\\x{0a}\\x{0d}\\x{85}\\x{0c}b"],-     Nothing,-     Nothing]-,-testRegex "^a\\R{1,3}b" [ERROR]-    ["a\\nb",-     "a\\n\\rb",-     "a\\n\\r\\x{85}b",-     "a\\r\\n\\r\\nb ",-     "a\\r\\n\\r\\n\\r\\nb ",-     "a\\n\\r\\n\\rb",-     "a\\n\\n\\r\\nb ",-     "** Failers",-     "a\\n\\n\\n\\rb",-     "a\\r"]-    [Just [" 0: a\\x{0a}b"],-     Just [" 0: a\\x{0a}\\x{0d}b"],-     Just [" 0: a\\x{0a}\\x{0d}\\x{85}b"],-     Just [" 0: a\\x{0d}\\x{0a}\\x{0d}\\x{0a}b"],-     Just [" 0: a\\x{0d}\\x{0a}\\x{0d}\\x{0a}\\x{0d}\\x{0a}b"],-     Just [" 0: a\\x{0a}\\x{0d}\\x{0a}\\x{0d}b"],-     Just [" 0: a\\x{0a}\\x{0a}\\x{0d}\\x{0a}b"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\h+\\V?\\v{3,4}" [ERROR]-    ["\\x09\\x20\\x{a0}X\\x0a\\x0b\\x0c\\x0d\\x0a"]-    [Just [" 0: \\x{09} \\x{a0}X\\x{0a}\\x{0b}\\x{0c}\\x{0d}"],-     Just [" 1: \\x{09} \\x{a0}X\\x{0a}\\x{0b}\\x{0c}"]]-,-testRegex "\\V?\\v{3,4}" [ERROR]-    ["\\x20\\x{a0}X\\x0a\\x0b\\x0c\\x0d\\x0a"]-    [Just [" 0: X\\x{0a}\\x{0b}\\x{0c}\\x{0d}"],-     Just [" 1: X\\x{0a}\\x{0b}\\x{0c}"]]-,-testRegex "\\h+\\V?\\v{3,4}" [ERROR]-    [">\\x09\\x20\\x{a0}X\\x0a\\x0a\\x0a<"]-    [Just [" 0: \\x{09} \\x{a0}X\\x{0a}\\x{0a}\\x{0a}"]]-,-testRegex "\\V?\\v{3,4}" [ERROR]-    [">\\x09\\x20\\x{a0}X\\x0a\\x0a\\x0a<"]-    [Just [" 0: X\\x{0a}\\x{0a}\\x{0a}"]]-,-testRegex "\\H\\h\\V\\v" [ERROR]-    ["X X\\x0a",-     "X\\x09X\\x0b",-     "** Failers",-     "\\x{a0} X\\x0a   ",-     "",-     "/\\H*\\h+\\V?\\v{3,4}/8 ",-     "\\x09\\x20\\x{a0}X\\x0a\\x0b\\x0c\\x0d\\x0a",-     "\\x09\\x20\\x{a0}\\x0a\\x0b\\x0c\\x0d\\x0a",-     "\\x09\\x20\\x{a0}\\x0a\\x0b\\x0c",-     "** Failers ",-     "\\x09\\x20\\x{a0}\\x0a\\x0b",-     "",-     "/\\H\\h\\V\\v/8",-     "\\x{3001}\\x{3000}\\x{2030}\\x{2028}",-     "X\\x{180e}X\\x{85}",-     "** Failers",-     "\\x{2009} X\\x0a   ",-     "",-     "/\\H*\\h+\\V?\\v{3,4}/8 ",-     "\\x{1680}\\x{180e}\\x{2007}X\\x{2028}\\x{2029}\\x0c\\x0d\\x0a",-     "\\x09\\x{205f}\\x{a0}\\x0a\\x{2029}\\x0c\\x{2028}\\x0a",-     "\\x09\\x20\\x{202f}\\x0a\\x0b\\x0c",-     "** Failers ",-     "\\x09\\x{200a}\\x{a0}\\x{2028}\\x0b",-     "",-     "/a\\Rb/I8<bsr_anycrlf>",-     "a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "** Failers",-     "a\\x{85}b",-     "a\\x0bb     "]-    [Just [" 0: X X\\x{0a}"],-     Just [" 0: X\\x{09}X\\x{0b}"],-     Nothing,-     Nothing,-     Just ["/\\H*\\h+\\V?\\v{3,4}/8 "],-     Just [" 0: \\x{09} \\x{a0}X\\x{0a}\\x{0b}\\x{0c}\\x{0d}"],-     Just [" 1: \\x{09} \\x{a0}X\\x{0a}\\x{0b}\\x{0c}"],-     Just [" 0: \\x{09} \\x{a0}\\x{0a}\\x{0b}\\x{0c}\\x{0d}"],-     Just [" 1: \\x{09} \\x{a0}\\x{0a}\\x{0b}\\x{0c}"],-     Just [" 0: \\x{09} \\x{a0}\\x{0a}\\x{0b}\\x{0c}"],-     Nothing,-     Nothing,-     Just ["/\\H\\h\\V\\v/8"],-     Just [" 0: \\x{3001}\\x{3000}\\x{2030}\\x{2028}"],-     Just [" 0: X\\x{180e}X\\x{85}"],-     Nothing,-     Nothing,-     Just ["/\\H*\\h+\\V?\\v{3,4}/8 "],-     Just [" 0: \\x{1680}\\x{180e}\\x{2007}X\\x{2028}\\x{2029}\\x{0c}\\x{0d}"],-     Just [" 1: \\x{1680}\\x{180e}\\x{2007}X\\x{2028}\\x{2029}\\x{0c}"],-     Just [" 0: \\x{09}\\x{205f}\\x{a0}\\x{0a}\\x{2029}\\x{0c}\\x{2028}"],-     Just [" 1: \\x{09}\\x{205f}\\x{a0}\\x{0a}\\x{2029}\\x{0c}"],-     Just [" 0: \\x{09} \\x{202f}\\x{0a}\\x{0b}\\x{0c}"],-     Nothing,-     Nothing,-     Just ["/a\\Rb/I8<bsr_anycrlf>"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf utf8"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x{0d}b"],-     Just [" 0: a\\x{0a}b"],-     Just [" 0: a\\x{0d}\\x{0a}b"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\Rb" [ERROR]-    ["a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "a\\x{85}b",-     "a\\x0bb     ",-     "** Failers ",-     "a\\x{85}b\\<bsr_anycrlf>",-     "a\\x0bb\\<bsr_anycrlf>",-     "",-     "/a\\R?b/I8<bsr_anycrlf>",-     "a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "** Failers",-     "a\\x{85}b",-     "a\\x0bb     "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_unicode utf8"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x{0d}b"],-     Just [" 0: a\\x{0a}b"],-     Just [" 0: a\\x{0d}\\x{0a}b"],-     Just [" 0: a\\x{85}b"],-     Just [" 0: a\\x{0b}b"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/a\\R?b/I8<bsr_anycrlf>"],-     Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_anycrlf utf8"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x{0d}b"],-     Just [" 0: a\\x{0a}b"],-     Just [" 0: a\\x{0d}\\x{0a}b"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "a\\R?b" [ERROR]-    ["a\\rb",-     "a\\nb",-     "a\\r\\nb",-     "a\\x{85}b",-     "a\\x0bb     ",-     "** Failers ",-     "a\\x{85}b\\<bsr_anycrlf>",-     "a\\x0bb\\<bsr_anycrlf>",-     "",-     "/ End of testinput 8 / "]-    [Just ["Capturing subpattern count = 0"],-     Just ["Options: bsr_unicode utf8"],-     Just ["First char = 'a'"],-     Just ["Need char = 'b'"],-     Just [" 0: a\\x{0d}b"],-     Just [" 0: a\\x{0a}b"],-     Just [" 0: a\\x{0d}\\x{0a}b"],-     Just [" 0: a\\x{85}b"],-     Just [" 0: a\\x{0b}b"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/ End of testinput 8 / "]]
− tests/testdata/regex9.tests
@@ -1,1713 +0,0 @@-testRegex "\\pL\\P{Nd}" [ERROR]-    ["AB",-     "*** Failers",-     "A0",-     "00   "]-    [Just [" 0: AB"],-     Just [" 0: Fa"],-     Nothing,-     Nothing]-,-testRegex "\\X." [ERROR]-    ["AB",-     "A\\x{300}BC ",-     "A\\x{300}\\x{301}\\x{302}BC ",-     "*** Failers",-     "\\x{300}  "]-    [Just [" 0: AB"],-     Just [" 0: A\\x{300}B"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}B"],-     Just [" 0: **"],-     Nothing]-,-testRegex "\\X\\X" [ERROR]-    ["ABC",-     "A\\x{300}B\\x{300}\\x{301}C ",-     "A\\x{300}\\x{301}\\x{302}BC ",-     "*** Failers",-     "\\x{300}  "]-    [Just [" 0: AB"],-     Just [" 0: A\\x{300}B\\x{300}\\x{301}"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}B"],-     Just [" 0: **"],-     Nothing]-,-testRegex "^\\pL+" [ERROR]-    ["abcd",-     "a ",-     "*** Failers "]-    [Just [" 0: abcd"],-     Just [" 1: abc"],-     Just [" 2: ab"],-     Just [" 3: a"],-     Just [" 0: a"],-     Nothing]-,-testRegex "^\\PL+" [ERROR]-    ["1234",-     "= ",-     "*** Failers ",-     "abcd "]-    [Just [" 0: 1234"],-     Just [" 1: 123"],-     Just [" 2: 12"],-     Just [" 3: 1"],-     Just [" 0: ="],-     Just [" 0: *** "],-     Just [" 1: ***"],-     Just [" 2: **"],-     Just [" 3: *"],-     Nothing]-,-testRegex "^\\X+" [ERROR]-    ["abcdA\\x{300}\\x{301}\\x{302}",-     "A\\x{300}\\x{301}\\x{302}",-     "A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}",-     "a ",-     "*** Failers ",-     "\\x{300}\\x{301}\\x{302}"]-    [Just [" 0: abcdA\\x{300}\\x{301}\\x{302}"],-     Just [" 1: abcd"],-     Just [" 2: abc"],-     Just [" 3: ab"],-     Just [" 4: a"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}"],-     Just [" 0: a"],-     Just [" 0: *** Failers"],-     Just [" 1: *** Failer"],-     Just [" 2: *** Faile"],-     Just [" 3: *** Fail"],-     Just [" 4: *** Fai"],-     Just [" 5: *** Fa"],-     Just [" 6: *** F"],-     Just [" 7: *** "],-     Just [" 8: ***"],-     Just [" 9: **"],-     Just ["10: *"],-     Nothing]-,-testRegex "\\X?abc" [ERROR]-    ["abc",-     "A\\x{300}abc",-     "A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abcxyz",-     "\\x{300}abc  ",-     "*** Failers"]-    [Just [" 0: abc"],-     Just [" 0: A\\x{300}abc"],-     Just [" 0: A\\x{300}abc"],-     Just [" 0: abc"],-     Nothing]-,-testRegex "^\\X?abc" [ERROR]-    ["abc",-     "A\\x{300}abc",-     "*** Failers",-     "A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abcxyz",-     "\\x{300}abc  "]-    [Just [" 0: abc"],-     Just [" 0: A\\x{300}abc"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\X*abc" [ERROR]-    ["abc",-     "A\\x{300}abc",-     "A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abcxyz",-     "\\x{300}abc  ",-     "*** Failers"]-    [Just [" 0: abc"],-     Just [" 0: A\\x{300}abc"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abc"],-     Just [" 0: abc"],-     Nothing]-,-testRegex "^\\X*abc" [ERROR]-    ["abc",-     "A\\x{300}abc",-     "A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abcxyz",-     "*** Failers",-     "\\x{300}abc  "]-    [Just [" 0: abc"],-     Just [" 0: A\\x{300}abc"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abc"],-     Nothing,-     Nothing]-,-testRegex "^\\pL?=." [ERROR]-    ["A=b",-     "=c ",-     "*** Failers",-     "1=2 ",-     "AAAA=b  "]-    [Just [" 0: A=b"],-     Just [" 0: =c"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\pL*=." [ERROR]-    ["AAAA=b",-     "=c ",-     "*** Failers",-     "1=2  "]-    [Just [" 0: AAAA=b"],-     Just [" 0: =c"],-     Nothing,-     Nothing]-,-testRegex "^\\X{2,3}X" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X",-     "A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X ",-     "*** Failers",-     "X",-     "A\\x{300}\\x{301}\\x{302}X",-     "A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X"]-    [Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\pC\\pL\\pM\\pN\\pP\\pS\\pZ<" [ERROR]-    ["\\x7f\\x{c0}\\x{30f}\\x{660}\\x{66c}\\x{f01}\\x{1680}<",-     "\\np\\x{300}9!\\$ < ",-     "** Failers ",-     "ap\\x{300}9!\\$ < ",-     "",-     "/^\\PC/8",-     "X",-     "** Failers ",-     "\\x7f",-     "",-     "/^\\PL/8",-     "9",-     "** Failers ",-     "\\x{c0}",-     "",-     "/^\\PM/8",-     "X",-     "** Failers ",-     "\\x{30f}",-     "",-     "/^\\PN/8",-     "X",-     "** Failers ",-     "\\x{660}",-     "",-     "/^\\PP/8",-     "X",-     "** Failers ",-     "\\x{66c}",-     "",-     "/^\\PS/8",-     "X",-     "** Failers ",-     "\\x{f01}",-     "",-     "/^\\PZ/8",-     "X",-     "** Failers ",-     "\\x{1680}",-     "",-     "/^\\p{Cc}/8",-     "\\x{017}",-     "\\x{09f} ",-     "** Failers",-     "\\x{0600} ",-     "",-     "/^\\p{Cf}/8",-     "\\x{601}",-     "** Failers",-     "\\x{09f} ",-     "",-     "/^\\p{Cn}/8",-     "** Failers",-     "\\x{09f} ",-     "",-     "/^\\p{Co}/8",-     "\\x{f8ff}",-     "** Failers",-     "\\x{09f} ",-     "",-     "/^\\p{Cs}/8",-     "\\?\\x{dfff}",-     "** Failers",-     "\\x{09f} ",-     "",-     "/^\\p{Ll}/8",-     "a",-     "** Failers ",-     "Z",-     "\\x{e000}  ",-     "",-     "/^\\p{Lm}/8",-     "\\x{2b0}",-     "** Failers",-     "a ",-     "",-     "/^\\p{Lo}/8",-     "\\x{1bb}",-     "** Failers",-     "a ",-     "\\x{2b0}",-     "",-     "/^\\p{Lt}/8",-     "\\x{1c5}",-     "** Failers",-     "a ",-     "\\x{2b0}",-     "",-     "/^\\p{Lu}/8",-     "A",-     "** Failers",-     "\\x{2b0}",-     "",-     "/^\\p{Mc}/8",-     "\\x{903}",-     "** Failers",-     "X",-     "\\x{300}",-     "",-     "/^\\p{Me}/8",-     "\\x{488}",-     "** Failers",-     "X",-     "\\x{903}",-     "\\x{300}",-     "",-     "/^\\p{Mn}/8",-     "\\x{300}",-     "** Failers",-     "X",-     "\\x{903}",-     "",-     "/^\\p{Nd}+/8",-     "0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}\\x{668}\\x{669}\\x{66a}",-     "\\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}\\x{6f9}\\x{6fa}",-     "\\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}\\x{96f}\\x{970}",-     "** Failers",-     "X",-     "",-     "/^\\p{Nl}/8",-     "\\x{16ee}",-     "** Failers",-     "X",-     "\\x{966}",-     "",-     "/^\\p{No}/8",-     "\\x{b2}",-     "\\x{b3}",-     "** Failers",-     "X",-     "\\x{16ee}",-     "",-     "/^\\p{Pc}/8",-     "\\x5f",-     "\\x{203f}",-     "** Failers",-     "X",-     "-",-     "\\x{58a}",-     "",-     "/^\\p{Pd}/8",-     "-",-     "\\x{58a}",-     "** Failers",-     "X",-     "\\x{203f}",-     "",-     "/^\\p{Pe}/8",-     ")",-     "]",-     "}",-     "\\x{f3b}",-     "** Failers",-     "X",-     "\\x{203f}",-     "(",-     "[",-     "{",-     "\\x{f3c}",-     "",-     "/^\\p{Pf}/8",-     "\\x{bb}",-     "\\x{2019}",-     "** Failers",-     "X",-     "\\x{203f}",-     "",-     "/^\\p{Pi}/8",-     "\\x{ab}",-     "\\x{2018}",-     "** Failers",-     "X",-     "\\x{203f}",-     "",-     "/^\\p{Po}/8",-     "!",-     "\\x{37e}",-     "** Failers",-     "X",-     "\\x{203f}",-     "",-     "/^\\p{Ps}/8",-     "(",-     "[",-     "{",-     "\\x{f3c}",-     "** Failers",-     "X",-     ")",-     "]",-     "}",-     "\\x{f3b}",-     "",-     "/^\\p{Sc}+/8",-     "$\\x{a2}\\x{a3}\\x{a4}\\x{a5}\\x{a6}",-     "\\x{9f2}",-     "** Failers",-     "X",-     "\\x{2c2}",-     "",-     "/^\\p{Sk}/8",-     "\\x{2c2}",-     "** Failers",-     "X",-     "\\x{9f2}",-     "",-     "/^\\p{Sm}+/8",-     "+<|~\\x{ac}\\x{2044}",-     "** Failers",-     "X",-     "\\x{9f2}",-     "",-     "/^\\p{So}/8",-     "\\x{a6}",-     "\\x{482} ",-     "** Failers",-     "X",-     "\\x{9f2}",-     "",-     "/^\\p{Zl}/8",-     "\\x{2028}",-     "** Failers",-     "X",-     "\\x{2029}",-     "",-     "/^\\p{Zp}/8",-     "\\x{2029}",-     "** Failers",-     "X",-     "\\x{2028}",-     "",-     "/^\\p{Zs}/8",-     "\\ \\",-     "\\x{a0}",-     "\\x{1680}",-     "\\x{180e}",-     "\\x{2000}",-     "\\x{2001}     ",-     "** Failers",-     "\\x{2028}",-     "\\x{200d} ",-     "",-     "/\\p{Nd}+(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}+?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2,}(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2,}?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2}(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2,3}(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}{2,3}?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}?(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}??(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*+(..)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*+(...)/8",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Nd}*+(....)/8",-     "** Failers",-     "\\x{660}\\x{661}\\x{662}ABC",-     "",-     "/\\p{Lu}/8i",-     "A",-     "a\\x{10a0}B ",-     "** Failers ",-     "a",-     "\\x{1d00}  "]-    [Just [" 0: \\x{7f}\\x{c0}\\x{30f}\\x{660}\\x{66c}\\x{f01}\\x{1680}<"],-     Just [" 0: \\x{0a}p\\x{300}9!$ <"],-     Nothing,-     Nothing,-     Just ["/^\\PC/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PL/8"],-     Just [" 0: 9"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PM/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PN/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PP/8"],-     Just [" 0: X"],-     Nothing,-     Nothing,-     Just ["/^\\PS/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\PZ/8"],-     Just [" 0: X"],-     Just [" 0: *"],-     Nothing,-     Just ["/^\\p{Cc}/8"],-     Just [" 0: \\x{17}"],-     Just [" 0: \\x{9f}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Cf}/8"],-     Just [" 0: \\x{601}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Cn}/8"],-     Nothing,-     Nothing,-     Just ["/^\\p{Co}/8"],-     Just [" 0: \\x{f8ff}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Cs}/8"],-     Just [" 0: \\x{dfff}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Ll}/8"],-     Just [" 0: a"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Lm}/8"],-     Just [" 0: \\x{2b0}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Lo}/8"],-     Just [" 0: \\x{1bb}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Lt}/8"],-     Just [" 0: \\x{1c5}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Lu}/8"],-     Just [" 0: A"],-     Nothing,-     Nothing,-     Just ["/^\\p{Mc}/8"],-     Just [" 0: \\x{903}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Me}/8"],-     Just [" 0: \\x{488}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Mn}/8"],-     Just [" 0: \\x{300}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Nd}+/8"],-     Just [" 0: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}\\x{668}\\x{669}"],-     Just [" 1: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}\\x{668}"],-     Just [" 2: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}"],-     Just [" 3: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}"],-     Just [" 4: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}"],-     Just [" 5: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}"],-     Just [" 6: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}"],-     Just [" 7: 0123456789\\x{660}\\x{661}\\x{662}"],-     Just [" 8: 0123456789\\x{660}\\x{661}"],-     Just [" 9: 0123456789\\x{660}"],-     Just ["10: 0123456789"],-     Just ["11: 012345678"],-     Just ["12: 01234567"],-     Just ["13: 0123456"],-     Just ["14: 012345"],-     Just ["15: 01234"],-     Just ["16: 0123"],-     Just ["17: 012"],-     Just ["18: 01"],-     Just ["19: 0"],-     Just [" 0: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}\\x{6f9}"],-     Just [" 1: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}"],-     Just [" 2: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}"],-     Just [" 3: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}"],-     Just [" 4: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}"],-     Just [" 5: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}"],-     Just [" 6: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}"],-     Just [" 7: \\x{6f0}\\x{6f1}\\x{6f2}"],-     Just [" 8: \\x{6f0}\\x{6f1}"],-     Just [" 9: \\x{6f0}"],-     Just [" 0: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}\\x{96f}"],-     Just [" 1: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}"],-     Just [" 2: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}"],-     Just [" 3: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}"],-     Just [" 4: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}"],-     Just [" 5: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}"],-     Just [" 6: \\x{966}\\x{967}\\x{968}\\x{969}"],-     Just [" 7: \\x{966}\\x{967}\\x{968}"],-     Just [" 8: \\x{966}\\x{967}"],-     Just [" 9: \\x{966}"],-     Nothing,-     Nothing,-     Just ["/^\\p{Nl}/8"],-     Just [" 0: \\x{16ee}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{No}/8"],-     Just [" 0: \\x{b2}"],-     Just [" 0: \\x{b3}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pc}/8"],-     Just [" 0: _"],-     Just [" 0: \\x{203f}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pd}/8"],-     Just [" 0: -"],-     Just [" 0: \\x{58a}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pe}/8"],-     Just [" 0: )"],-     Just [" 0: ]"],-     Just [" 0: }"],-     Just [" 0: \\x{f3b}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pf}/8"],-     Just [" 0: \\x{bb}"],-     Just [" 0: \\x{2019}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Pi}/8"],-     Just [" 0: \\x{ab}"],-     Just [" 0: \\x{2018}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Po}/8"],-     Just [" 0: !"],-     Just [" 0: \\x{37e}"],-     Just [" 0: *"],-     Nothing,-     Nothing,-     Just ["/^\\p{Ps}/8"],-     Just [" 0: ("],-     Just [" 0: ["],-     Just [" 0: {"],-     Just [" 0: \\x{f3c}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Sc}+/8"],-     Just [" 0: $\\x{a2}\\x{a3}\\x{a4}\\x{a5}"],-     Just [" 1: $\\x{a2}\\x{a3}\\x{a4}"],-     Just [" 2: $\\x{a2}\\x{a3}"],-     Just [" 3: $\\x{a2}"],-     Just [" 4: $"],-     Just [" 0: \\x{9f2}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Sk}/8"],-     Just [" 0: \\x{2c2}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Sm}+/8"],-     Just [" 0: +<|~\\x{ac}\\x{2044}"],-     Just [" 1: +<|~\\x{ac}"],-     Just [" 2: +<|~"],-     Just [" 3: +<|"],-     Just [" 4: +<"],-     Just [" 5: +"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{So}/8"],-     Just [" 0: \\x{a6}"],-     Just [" 0: \\x{482}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Zl}/8"],-     Just [" 0: \\x{2028}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Zp}/8"],-     Just [" 0: \\x{2029}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/^\\p{Zs}/8"],-     Just [" 0:  "],-     Just [" 0: \\x{a0}"],-     Just [" 0: \\x{1680}"],-     Just [" 0: \\x{180e}"],-     Just [" 0: \\x{2000}"],-     Just [" 0: \\x{2001}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/\\p{Nd}+(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: \\x{660}\\x{661}\\x{662}A"],-     Just [" 2: \\x{660}\\x{661}\\x{662}"],-     Just ["/\\p{Nd}+?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: \\x{660}\\x{661}\\x{662}A"],-     Just [" 2: \\x{660}\\x{661}\\x{662}"],-     Just ["/\\p{Nd}{2,}(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: \\x{660}\\x{661}\\x{662}A"],-     Just ["/\\p{Nd}{2,}?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: \\x{660}\\x{661}\\x{662}A"],-     Just ["/\\p{Nd}*(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: \\x{660}\\x{661}\\x{662}A"],-     Just [" 2: \\x{660}\\x{661}\\x{662}"],-     Just [" 3: \\x{660}\\x{661}"],-     Just ["/\\p{Nd}*?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: \\x{660}\\x{661}\\x{662}A"],-     Just [" 2: \\x{660}\\x{661}\\x{662}"],-     Just [" 3: \\x{660}\\x{661}"],-     Just ["/\\p{Nd}{2}(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}A"],-     Just ["/\\p{Nd}{2,3}(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: \\x{660}\\x{661}\\x{662}A"],-     Just ["/\\p{Nd}{2,3}?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just [" 1: \\x{660}\\x{661}\\x{662}A"],-     Just ["/\\p{Nd}?(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}"],-     Just [" 1: \\x{660}\\x{661}"],-     Just ["/\\p{Nd}??(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}"],-     Just [" 1: \\x{660}\\x{661}"],-     Just ["/\\p{Nd}*+(..)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],-     Just ["/\\p{Nd}*+(...)/8"],-     Just [" 0: \\x{660}\\x{661}\\x{662}ABC"],-     Just ["/\\p{Nd}*+(....)/8"],-     Just [" 0: ** F"],-     Nothing,-     Just ["/\\p{Lu}/8i"],-     Just [" 0: A"],-     Just [" 0: \\x{10a0}"],-     Just [" 0: F"],-     Nothing,-     Nothing]-,-testRegex "\\p{^Lu}" [caseless]-    ["1234",-     "** Failers",-     "ABC "]-    [Just [" 0: 1"],-     Just [" 0: *"],-     Nothing]-,-testRegex "\\P{Lu}" [caseless]-    ["1234",-     "** Failers",-     "ABC "]-    [Just [" 0: 1"],-     Just [" 0: *"],-     Nothing]-,-testRegex "(?<=A\\p{Nd})XYZ" [ERROR]-    ["A2XYZ",-     "123A5XYZPQR",-     "ABA\\x{660}XYZpqr",-     "** Failers",-     "AXYZ",-     "XYZ     ",-     "",-     "/(?<!\\pL)XYZ/8",-     "1XYZ",-     "AB=XYZ.. ",-     "XYZ ",-     "** Failers",-     "WXYZ "]-    [Just [" 0: XYZ"],-     Just [" 0: XYZ"],-     Just [" 0: XYZ"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/(?<!\\pL)XYZ/8"],-     Just [" 0: XYZ"],-     Just [" 0: XYZ"],-     Just [" 0: XYZ"],-     Nothing,-     Nothing]-,-testRegex "[\\p{Nd}]" [ERROR]-    ["1234"]-    [Just [" 0: 1"]]-,-testRegex "[\\p{Nd}+-]+" [ERROR]-    ["1234",-     "12-34",-     "12+\\x{661}-34  ",-     "** Failers",-     "abcd  "]-    [Just [" 0: 1234"],-     Just [" 1: 123"],-     Just [" 2: 12"],-     Just [" 3: 1"],-     Just [" 0: 12-34"],-     Just [" 1: 12-3"],-     Just [" 2: 12-"],-     Just [" 3: 12"],-     Just [" 4: 1"],-     Just [" 0: 12+\\x{661}-34"],-     Just [" 1: 12+\\x{661}-3"],-     Just [" 2: 12+\\x{661}-"],-     Just [" 3: 12+\\x{661}"],-     Just [" 4: 12+"],-     Just [" 5: 12"],-     Just [" 6: 1"],-     Nothing,-     Nothing]-,-testRegex "[\\P{Nd}]+" [ERROR]-    ["abcd",-     "** Failers",-     "1234"]-    [Just [" 0: abcd"],-     Just [" 1: abc"],-     Just [" 2: ab"],-     Just [" 3: a"],-     Just [" 0: ** Failers"],-     Just [" 1: ** Failer"],-     Just [" 2: ** Faile"],-     Just [" 3: ** Fail"],-     Just [" 4: ** Fai"],-     Just [" 5: ** Fa"],-     Just [" 6: ** F"],-     Just [" 7: ** "],-     Just [" 8: **"],-     Just [" 9: *"],-     Nothing]-,-testRegex "\\D+" [ERROR]-    ["11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",-     "",-     "/\\P{Nd}+/8",-     "11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Nothing,-     Just ["Matched, but too many subsidiary matches"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["/\\P{Nd}+/8"],-     Nothing,-     Just ["Matched, but too many subsidiary matches"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "[\\D]+" [ERROR]-    ["11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Nothing,-     Just ["Matched, but too many subsidiary matches"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "[\\P{Nd}]+" [ERROR]-    ["11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Nothing,-     Just ["Matched, but too many subsidiary matches"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "[\\D\\P{Nd}]+" [ERROR]-    ["11111111111111111111111111111111111111111111111111111111111111111111111",-     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]-    [Nothing,-     Just ["Matched, but too many subsidiary matches"],-     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],-     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]-,-testRegex "\\pL" [ERROR]-    ["a",-     "A "]-    [Just [" 0: a"],-     Just [" 0: A"]]-,-testRegex "\\pL" [caseless]-    ["a",-     "A ",-     "",-     "/\\p{Lu}/8 ",-     "A",-     "aZ",-     "** Failers",-     "abc   "]-    [Just [" 0: a"],-     Just [" 0: A"],-     Just ["/\\p{Lu}/8 "],-     Just [" 0: A"],-     Just [" 0: Z"],-     Just [" 0: F"],-     Nothing]-,-testRegex "\\p{Lu}" [caseless]-    ["A",-     "aZ",-     "** Failers",-     "abc   "]-    [Just [" 0: A"],-     Just [" 0: Z"],-     Just [" 0: F"],-     Nothing]-,-testRegex "\\p{Ll}" [ERROR]-    ["a",-     "Az",-     "** Failers",-     "ABC   "]-    [Just [" 0: a"],-     Just [" 0: z"],-     Just [" 0: a"],-     Nothing]-,-testRegex "\\p{Ll}" [ERROR]-    ["a",-     "Az",-     "** Failers",-     "ABC   "]-    [Just [" 0: a"],-     Just [" 0: z"],-     Just [" 0: a"],-     Nothing]-,-testRegex "^\\x{c0}$" [caseless]-    ["\\x{c0}",-     "\\x{e0} "]-    [Just [" 0: \\x{c0}"],-     Just [" 0: \\x{e0}"]]-,-testRegex "^\\x{e0}$" [caseless]-    ["\\x{c0}",-     "\\x{e0} "]-    [Just [" 0: \\x{c0}"],-     Just [" 0: \\x{e0}"]]-,-testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]-    ["A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}",-     "** Failers",-     "a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}   ",-     "A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}",-     "A\\x{391}\\x{1044F}\\x{ff3a}\\x{1fb0}",-     "A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}",-     "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]-    [Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [caseless]-    ["A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}",-     "a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}   ",-     "A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}",-     "A\\x{391}\\x{1044F}\\x{ff3a}\\x{1fb0}",-     "A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}",-     "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]-    [Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],-     Just [" 0: a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],-     Just [" 0: A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}"],-     Just [" 0: A\\x{391}\\x{1044f}\\x{ff3a}\\x{1fb0}"],-     Just [" 0: A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}"],-     Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]]-,-testRegex "\\x{391}+" [caseless]-    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"]-    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"],-     Just [" 1: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}"],-     Just [" 2: \\x{391}\\x{3b1}\\x{3b1}"],-     Just [" 3: \\x{391}\\x{3b1}"],-     Just [" 4: \\x{391}"]]-,-testRegex "\\x{391}{3,5}(.)" [caseless]-    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"]-    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"],-     Just [" 1: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"],-     Just [" 2: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}"]]-,-testRegex "\\x{391}{3,5}?(.)" [caseless]-    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"]-    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"],-     Just [" 1: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"],-     Just [" 2: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}"]]-,-testRegex "[\\x{391}\\x{ff3a}]" [caseless]-    ["\\x{391}",-     "\\x{ff3a}",-     "\\x{3b1}",-     "\\x{ff5a}   ",-     "",-     "/[\\x{c0}\\x{391}]/8i",-     "\\x{c0}",-     "\\x{e0} "]-    [Just [" 0: \\x{391}"],-     Just [" 0: \\x{ff3a}"],-     Just [" 0: \\x{3b1}"],-     Just [" 0: \\x{ff5a}"],-     Just ["/[\\x{c0}\\x{391}]/8i"],-     Just [" 0: \\x{c0}"],-     Just [" 0: \\x{e0}"]]-,-testRegex "[\\x{105}-\\x{109}]" [caseless]-    ["\\x{104}",-     "\\x{105}",-     "\\x{109}  ",-     "** Failers",-     "\\x{100}",-     "\\x{10a} ",-     "",-     "/[z-\\x{100}]/8i ",-     "Z",-     "z",-     "\\x{39c}",-     "\\x{178}",-     "|",-     "\\x{80}",-     "\\x{ff}",-     "\\x{100}",-     "\\x{101} ",-     "** Failers",-     "\\x{102}",-     "Y",-     "y           "]-    [Just [" 0: \\x{104}"],-     Just [" 0: \\x{105}"],-     Just [" 0: \\x{109}"],-     Nothing,-     Nothing,-     Nothing,-     Just ["/[z-\\x{100}]/8i "],-     Just [" 0: Z"],-     Just [" 0: z"],-     Just [" 0: \\x{39c}"],-     Just [" 0: \\x{178}"],-     Just [" 0: |"],-     Just [" 0: \\x{80}"],-     Just [" 0: \\x{ff}"],-     Just [" 0: \\x{100}"],-     Just [" 0: \\x{101}"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "[z-\\x{100}]" [caseless]-    []-    []-,-testRegex "^\\X" [ERROR]-    ["A",-     "A\\x{300}BC ",-     "A\\x{300}\\x{301}\\x{302}BC ",-     "*** Failers",-     "\\x{300}  "]-    [Just [" 0: A"],-     Just [" 0: A\\x{300}"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}"],-     Just [" 0: *"],-     Nothing]-,-testRegex "^[\\X]" [ERROR]-    ["X123",-     "*** Failers",-     "AXYZ"]-    [Just [" 0: X"],-     Nothing,-     Nothing]-,-testRegex "^(\\X*)C" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",-     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]-    [Just [" 0: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BC"]]-,-testRegex "^(\\X*?)C" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",-     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]-    [Just [" 0: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BC"]]-,-testRegex "^(\\X*)(.)" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",-     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]-    [Just [" 0: A\\x{300}\\x{301}\\x{302}BCA"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 2: A\\x{300}\\x{301}\\x{302}B"],-     Just [" 3: A"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BCA"],-     Just [" 2: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 3: A\\x{300}\\x{301}\\x{302}B"],-     Just [" 4: A"]]-,-testRegex "^(\\X*?)(.)" [ERROR]-    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",-     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]-    [Just [" 0: A\\x{300}\\x{301}\\x{302}BCA"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 2: A\\x{300}\\x{301}\\x{302}B"],-     Just [" 3: A"],-     Just [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],-     Just [" 1: A\\x{300}\\x{301}\\x{302}BCA"],-     Just [" 2: A\\x{300}\\x{301}\\x{302}BC"],-     Just [" 3: A\\x{300}\\x{301}\\x{302}B"],-     Just [" 4: A"]]-,-testRegex "^\\X(.)" [ERROR]-    ["*** Failers",-     "A\\x{300}\\x{301}\\x{302}"]-    [Just [" 0: **"],-     Nothing]-,-testRegex "^\\X{2,3}(.)" [ERROR]-    ["A\\x{300}\\x{301}B\\x{300}X",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}DA\\x{300}X",-     "",-     "/^\\X{2,3}?(.)/8",-     "A\\x{300}\\x{301}B\\x{300}X",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X",-     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}DA\\x{300}X"]-    [Just [" 0: A\\x{300}\\x{301}B\\x{300}X"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X"],-     Just [" 1: A\\x{300}\\x{301}B\\x{300}C"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}D"],-     Just [" 1: A\\x{300}\\x{301}B\\x{300}C"],-     Just ["/^\\X{2,3}?(.)/8"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}X"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X"],-     Just [" 1: A\\x{300}\\x{301}B\\x{300}C"],-     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}D"],-     Just [" 1: A\\x{300}\\x{301}B\\x{300}C"]]-,-testRegex "^\\pN{2,3}X" []-    ["12X",-     "123X",-     "*** Failers",-     "X",-     "1X",-     "1234X     "]-    [Just [" 0: 12X"],-     Just [" 0: 123X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "\\x{100}" [ERROR]-    ["\\x{100}   ",-     "\\x{101} ",-     "",-     "/^\\p{Han}+/8",-     "\\x{2e81}\\x{3007}\\x{2f804}\\x{31a0}",-     "** Failers",-     "\\x{2e7f}  "]-    [Just [" 0: \\x{100}"],-     Just [" 0: \\x{101}"],-     Just ["/^\\p{Han}+/8"],-     Just [" 0: \\x{2e81}\\x{3007}\\x{2f804}"],-     Just [" 1: \\x{2e81}\\x{3007}"],-     Just [" 2: \\x{2e81}"],-     Nothing,-     Nothing]-,-testRegex "^\\P{Katakana}+" [ERROR]-    ["\\x{3105}",-     "** Failers",-     "\\x{30ff}  "]-    [Just [" 0: \\x{3105}"],-     Just [" 0: ** Failers"],-     Just [" 1: ** Failer"],-     Just [" 2: ** Faile"],-     Just [" 3: ** Fail"],-     Just [" 4: ** Fai"],-     Just [" 5: ** Fa"],-     Just [" 6: ** F"],-     Just [" 7: ** "],-     Just [" 8: **"],-     Just [" 9: *"],-     Nothing]-,-testRegex "^[\\p{Arabic}]" [ERROR]-    ["\\x{06e9}",-     "\\x{060b}",-     "** Failers",-     "X\\x{06e9}   "]-    [Just [" 0: \\x{6e9}"],-     Just [" 0: \\x{60b}"],-     Nothing,-     Nothing]-,-testRegex "^[\\P{Yi}]" [ERROR]-    ["\\x{2f800}",-     "** Failers",-     "\\x{a014}",-     "\\x{a4c6}   "]-    [Just [" 0: \\x{2f800}"],-     Just [" 0: *"],-     Nothing,-     Nothing]-,-testRegex "^\\p{Any}X" [ERROR]-    ["AXYZ",-     "\\x{1234}XYZ ",-     "** Failers",-     "X  ",-     "",-     "/^\\P{Any}X/8",-     "** Failers",-     "AX",-     "",-     "/^\\p{Any}?X/8",-     "XYZ",-     "AXYZ",-     "\\x{1234}XYZ ",-     "** Failers",-     "ABXYZ   "]-    [Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Nothing,-     Nothing,-     Just ["/^\\P{Any}X/8"],-     Nothing,-     Nothing,-     Just ["/^\\p{Any}?X/8"],-     Just [" 0: X"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Nothing,-     Nothing]-,-testRegex "^\\P{Any}?X" [ERROR]-    ["XYZ",-     "** Failers",-     "AXYZ",-     "\\x{1234}XYZ ",-     "ABXYZ   "]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{Any}+X" [ERROR]-    ["AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "** Failers",-     "XYZ"]-    [Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Just [" 0: A\\x{1234}X"],-     Nothing,-     Nothing]-,-testRegex "^\\P{Any}+X" [ERROR]-    ["** Failers",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "XYZ"]-    [Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{Any}*X" [ERROR]-    ["XYZ",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "** Failers"]-    [Just [" 0: X"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Just [" 0: A\\x{1234}X"],-     Nothing]-,-testRegex "^\\P{Any}*X" [ERROR]-    ["XYZ",-     "** Failers",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ"]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{Any}]X" [ERROR]-    ["AXYZ",-     "\\x{1234}XYZ ",-     "** Failers",-     "X  ",-     "",-     "/^[\\P{Any}]X/8",-     "** Failers",-     "AX",-     "",-     "/^[\\p{Any}]?X/8",-     "XYZ",-     "AXYZ",-     "\\x{1234}XYZ ",-     "** Failers",-     "ABXYZ   "]-    [Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Nothing,-     Nothing,-     Just ["/^[\\P{Any}]X/8"],-     Nothing,-     Nothing,-     Just ["/^[\\p{Any}]?X/8"],-     Just [" 0: X"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Nothing,-     Nothing]-,-testRegex "^[\\P{Any}]?X" [ERROR]-    ["XYZ",-     "** Failers",-     "AXYZ",-     "\\x{1234}XYZ ",-     "ABXYZ   "]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{Any}]+X" [ERROR]-    ["AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "** Failers",-     "XYZ"]-    [Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Just [" 0: A\\x{1234}X"],-     Nothing,-     Nothing]-,-testRegex "^[\\P{Any}]+X" [ERROR]-    ["** Failers",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "XYZ"]-    [Nothing,-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{Any}]*X" [ERROR]-    ["XYZ",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ",-     "** Failers"]-    [Just [" 0: X"],-     Just [" 0: AX"],-     Just [" 0: \\x{1234}X"],-     Just [" 0: A\\x{1234}X"],-     Nothing]-,-testRegex "^[\\P{Any}]*X" [ERROR]-    ["XYZ",-     "** Failers",-     "AXYZ",-     "\\x{1234}XYZ",-     "A\\x{1234}XYZ"]-    [Just [" 0: X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{Any}{3,5}?" [ERROR]-    ["abcdefgh",-     "\\x{1234}\\n\\r\\x{3456}xyz "]-    [Just [" 0: abcde"],-     Just [" 1: abcd"],-     Just [" 2: abc"],-     Just [" 0: \\x{1234}\\x{0a}\\x{0d}\\x{3456}x"],-     Just [" 1: \\x{1234}\\x{0a}\\x{0d}\\x{3456}"],-     Just [" 2: \\x{1234}\\x{0a}\\x{0d}"]]-,-testRegex "^\\p{Any}{3,5}" [ERROR]-    ["abcdefgh",-     "\\x{1234}\\n\\r\\x{3456}xyz "]-    [Just [" 0: abcde"],-     Just [" 1: abcd"],-     Just [" 2: abc"],-     Just [" 0: \\x{1234}\\x{0a}\\x{0d}\\x{3456}x"],-     Just [" 1: \\x{1234}\\x{0a}\\x{0d}\\x{3456}"],-     Just [" 2: \\x{1234}\\x{0a}\\x{0d}"]]-,-testRegex "^\\P{Any}{3,5}?" [ERROR]-    ["** Failers",-     "abcdefgh",-     "\\x{1234}\\n\\r\\x{3456}xyz "]-    [Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{L&}X" [ERROR]-    ["AXY",-     "aXY",-     "\\x{1c5}XY",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: \\x{1c5}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{L&}]X" [ERROR]-    ["AXY",-     "aXY",-     "\\x{1c5}XY",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: \\x{1c5}X"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{L&}+X" [ERROR]-    ["AXY",-     "aXY",-     "AbcdeXyz ",-     "\\x{1c5}AbXY",-     "abcDEXypqreXlmn ",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: AbcdeX"],-     Just [" 0: \\x{1c5}AbX"],-     Just [" 0: abcDEXypqreX"],-     Just [" 1: abcDEX"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{L&}]+X" [ERROR]-    ["AXY",-     "aXY",-     "AbcdeXyz ",-     "\\x{1c5}AbXY",-     "abcDEXypqreXlmn ",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: AbcdeX"],-     Just [" 0: \\x{1c5}AbX"],-     Just [" 0: abcDEXypqreX"],-     Just [" 1: abcDEX"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\p{L&}+?X" [ERROR]-    ["AXY",-     "aXY",-     "AbcdeXyz ",-     "\\x{1c5}AbXY",-     "abcDEXypqreXlmn ",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: AbcdeX"],-     Just [" 0: \\x{1c5}AbX"],-     Just [" 0: abcDEXypqreX"],-     Just [" 1: abcDEX"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\p{L&}]+?X" [ERROR]-    ["AXY",-     "aXY",-     "AbcdeXyz ",-     "\\x{1c5}AbXY",-     "abcDEXypqreXlmn ",-     "** Failers",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "!XY      "]-    [Just [" 0: AX"],-     Just [" 0: aX"],-     Just [" 0: AbcdeX"],-     Just [" 0: \\x{1c5}AbX"],-     Just [" 0: abcDEXypqreX"],-     Just [" 1: abcDEX"],-     Nothing,-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\P{L&}X" [ERROR]-    ["!XY",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "** Failers",-     "\\x{1c5}XY",-     "AXY      "]-    [Just [" 0: !X"],-     Just [" 0: \\x{1bb}X"],-     Just [" 0: \\x{2b0}X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^[\\P{L&}]X" [ERROR]-    ["!XY",-     "\\x{1bb}XY",-     "\\x{2b0}XY",-     "** Failers",-     "\\x{1c5}XY",-     "AXY      "]-    [Just [" 0: !X"],-     Just [" 0: \\x{1bb}X"],-     Just [" 0: \\x{2b0}X"],-     Nothing,-     Nothing,-     Nothing]-,-testRegex "^\\x{023a}+?(\\x{0130}+)" [caseless]-    ["\\x{023a}\\x{2c65}\\x{0130}",-     "",-     "/^\\x{023a}+([^X])/8i",-     "\\x{023a}\\x{2c65}X",-     "",-     "/Check property support in non-UTF-8 mode/",-     "",-     "/\\p{L}{4}/",-     "123abcdefg",-     "123abc\\xc4\\xc5zz"]-    [Just [" 0: \\x{23a}\\x{2c65}\\x{130}"],-     Just ["/^\\x{023a}+([^X])/8i"],-     Just [" 0: \\x{23a}\\x{2c65}"],-     Just ["/Check property support in non-UTF-8 mode/"],-     Just ["/\\p{L}{4}/"],-     Just [" 0: abcd"],-     Just [" 0: abc\\xc4"]]-,-testRegex " End " [ERROR]-    []-    []