diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -64,9 +64,7 @@
 
 &nbsp;&nbsp;&nbsp;&nbsp;&#x2612;&nbsp;&nbsp;2017-03-24  v0.9.0.0  [Finish tidying up the API, Add type-safe replacement templates and exploit TemplateHaskellQuotes](https://github.com/iconnect/regex/milestone/9)
 
-&nbsp;&nbsp;&nbsp;&nbsp;&#x2612;&nbsp;&nbsp;2017-03-25  v0.10.0.0 [Tweak TypeSafe SearchReplace templates](https://github.com/iconnect/regex/milestone/11)
-
-&nbsp;&nbsp;&nbsp;&nbsp;&#x2612;&nbsp;&nbsp;2017-03-26  v0.10.0.1 [Fix release](https://github.com/iconnect/regex/issues/88)
+&nbsp;&nbsp;&nbsp;&nbsp;&#x2612;&nbsp;&nbsp;2017-03-27  v0.10.0.2 [Tweak Templates, Fix release scripts and update Haddocks commentary](https://github.com/iconnect/regex/milestone/12)
 
 &nbsp;&nbsp;&nbsp;&nbsp;&#x2610;&nbsp;&nbsp;2017-03-31  v1.0.0.0  [First stable release](https://github.com/iconnect/regex/milestone/3)
 
diff --git a/Text/RE/Internal/Examples.hs b/Text/RE/Internal/Examples.hs
deleted file mode 100644
--- a/Text/RE/Internal/Examples.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Text.RE.Internal.Examples
-  (
-  -- * regex-examples dummy library
-  -- $announce
-    greetings
-  ) where
-
-greetings :: IO ()
-greetings = putStr $ unlines
-    [ "Hello! This is a dummy function in the dummy library of the"
-    , "regex-examples package."
-    ]
-
--- $announce
---
--- This is a dummy library to accompany the regex-examples programs.
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,11 +1,17 @@
 -*-change-log-*-
 
+0.10.0.2 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-03-27
+  * Constrain the types of the template quasi quoters (#86)
+  * Add escape methods to IsRegex (#87)
+  * Better Haddock Commentary (#90)
+  * Better release-testing scripts (#91)
+  * Make travis stack-release tests advisory (#92)
+
 0.10.0.1 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-03-26
-  * Fix sub-package cabal files (#88)
+  Withdrawn
 
 0.10.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-03-25
-  * Tweak Type-Safe SearchReplace templates (#86)
-  * Add escape methods to IsRegex (#87)
+  Withdrawn
 
 0.9.0.0 Chris Dornan <chris.dornan@irisconnect.co.uk> 2017-03-23
   * Flip the order of the arguments to replace (#78)
diff --git a/examples/re-gen-cabals.lhs b/examples/re-gen-cabals.lhs
--- a/examples/re-gen-cabals.lhs
+++ b/examples/re-gen-cabals.lhs
@@ -52,6 +52,7 @@
     []                    -> test
     ["test"]              -> test
     ["bump-version",vrn]  -> bumpVersion vrn
+    ["test-release",vrn]  -> test_release $ T.pack vrn
     ["sdist"]             -> sdist
     ["gen"]               -> do
       gen  "lib/cabal-masters/mega-regex.cabal"       "lib/mega-regex.cabal"
@@ -66,6 +67,7 @@
         , prg "--help"
         , prg "[test]"
         , prg "bump-version <version>"
+        , prg "test-release <version>"
         , prg "sdist"
         , prg "gen"
         ]
@@ -347,19 +349,20 @@
 
 test_release :: T.Text -> IO ()
 test_release vrn_t = do
-    setCurrentDirectory "releases/test"
+    setCurrentDirectory "releases"
     SH.shelly $ SH.verbosely $ do
-      SH.rm_rf $ SH.fromText "test-regex"
-      SH.rm_rf $ SH.fromText "test-regex-with-pcre"
-      SH.rm_rf $ SH.fromText "test-regex-examples"
-      unpack "regex"
-      unpack "regex-with-pcre"
-      unpack "regex-examples"
-      SH.run_ "stack" ["install"]
+      SH.rm_rf "test-regex-examples"
+      unpack "." "regex-examples"
+    setCurrentDirectory "test-regex-examples"
+    SH.shelly $ SH.verbosely $ do
+      unpack ".." "regex"
+      unpack ".." "regex-with-pcre"
+      SH.cp "../../lib/release-testing/stack.yaml" "."
+      SH.run_ "stack" ["--no-terminal","test", "--haddock", "--no-haddock-deps"]
     setCurrentDirectory "../.."
   where
-    unpack pn = do
-        SH.run_ "tar" ["xzf","../"<>pn_vrn<>".tar.gz"]
+    unpack rp pn = do
+        SH.run_ "tar" ["xzf",rp<>"/"<>pn_vrn<>".tar.gz"]
         SH.mv (SH.fromText pn_vrn) (SH.fromText $ "test-"<>pn)
       where
         pn_vrn = pn<>"-"<>vrn_t
diff --git a/examples/re-gen-modules.lhs b/examples/re-gen-modules.lhs
--- a/examples/re-gen-modules.lhs
+++ b/examples/re-gen-modules.lhs
@@ -54,9 +54,7 @@
   createDirectoryIfMissing False "tmp"
   tdfa_ap_ok <- and <$> mapM (test' source_api_mp) tdfa_api_edits
   pcre_ap_ok <- and <$> mapM (test' source_api_mp) pcre_api_edits
-  tdfa_ed_ok <- and <$> mapM (test' source_ed_mp ) tdfa_ed_edits
-  pcre_ed_ok <- and <$> mapM (test' source_ed_mp ) pcre_ed_edits
-  case tdfa_ap_ok && pcre_ap_ok && tdfa_ed_ok && pcre_ed_ok of
+  case tdfa_ap_ok && pcre_ap_ok of
     True  -> return ()
     False -> exitWith $ ExitFailure 1
 
diff --git a/lib/cabal-masters/regex-examples.cabal b/lib/cabal-masters/regex-examples.cabal
--- a/lib/cabal-masters/regex-examples.cabal
+++ b/lib/cabal-masters/regex-examples.cabal
@@ -33,16 +33,7 @@
     Tag:                <<$version$>>
 
 %Wwarn
-
-Library
-    Hs-Source-Dirs:     .
-    Exposed-Modules:
-      Text.RE.Internal.Examples
-
-%build-depends-lib base array
-
 %include "lib/cabal-masters/constraints-incl.cabal"
-
 %include "lib/cabal-masters/executables-incl.cabal"
 
 -- Generated with re-gen-cabals
diff --git a/lib/mega-regex.cabal b/lib/mega-regex.cabal
--- a/lib/mega-regex.cabal
+++ b/lib/mega-regex.cabal
@@ -1,5 +1,5 @@
 Name:                   regex
-Version:                0.10.0.1
+Version:                0.10.0.2
 Synopsis:               Toolkit for regex-base
 Description:            A Regular Expression Toolkit for regex-base with
                         Compile-time checking of RE syntax, data types for
@@ -62,7 +62,7 @@
 Source-Repository this
     Type:               git
     Location:           https://github.com/iconnect/regex.git
-    Tag:                0.10.0.1
+    Tag:                0.10.0.2
 
 
 
@@ -192,7 +192,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -222,7 +222,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -249,7 +249,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -275,7 +275,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -304,7 +304,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
       , bytestring           >= 0.10.2.0
@@ -330,7 +330,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
       , bytestring           >= 0.10.2.0
@@ -353,7 +353,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -383,7 +383,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -416,7 +416,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
       , bytestring           >= 0.10.2.0
@@ -444,7 +444,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
       , bytestring           >= 0.10.2.0
@@ -472,7 +472,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -510,7 +510,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -549,7 +549,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -593,7 +593,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -639,7 +639,7 @@
       -Werror
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
diff --git a/lib/version.txt b/lib/version.txt
--- a/lib/version.txt
+++ b/lib/version.txt
@@ -1,1 +1,1 @@
-0.10.0.1
+0.10.0.2
diff --git a/regex-examples.cabal b/regex-examples.cabal
--- a/regex-examples.cabal
+++ b/regex-examples.cabal
@@ -1,5 +1,5 @@
 Name:                   regex-examples
-Version:                0.10.0.1
+Version:                0.10.0.2
 Synopsis:               Tutorial, tests and example programs for regex
 Description:            Tutorial, tests and example programs for regex,
                         a Regular Expression Toolkit for regex-base with
@@ -63,51 +63,7 @@
 Source-Repository this
     Type:               git
     Location:           https://github.com/iconnect/regex.git
-    Tag:                0.10.0.1
-
-
-Library
-    Hs-Source-Dirs:     .
-    Exposed-Modules:
-      Text.RE.Internal.Examples
-
-    Default-Language:   Haskell2010
-
-    Other-Extensions:
-      AllowAmbiguousTypes
-      CPP
-      DeriveDataTypeable
-      DeriveGeneric
-      ExistentialQuantification
-      FlexibleContexts
-      FlexibleInstances
-      FunctionalDependencies
-      GeneralizedNewtypeDeriving
-      MultiParamTypeClasses
-      NoImplicitPrelude
-      OverloadedStrings
-      QuasiQuotes
-      RecordWildCards
-      ScopedTypeVariables
-      TemplateHaskell
-      TypeSynonymInstances
-      UndecidableInstances
-
-    if !impl(ghc >= 8.0)
-      Other-Extensions: TemplateHaskell
-    else
-      Other-Extensions: TemplateHaskellQuotes
-
-    GHC-Options:
-      -Wall
-      -fwarn-tabs
-      -Wwarn
-
-    Build-depends:
-        array                
-      , base                 
-
-
+    Tag:                0.10.0.2
 
 
 Executable re-gen-cabals
@@ -126,7 +82,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -156,7 +112,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -183,7 +139,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -209,7 +165,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -238,7 +194,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
       , bytestring           >= 0.10.2.0
@@ -264,7 +220,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
       , bytestring           >= 0.10.2.0
@@ -287,8 +243,8 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
-      , regex-with-pcre      == 0.10.0.1
+        regex                == 0.10.0.2
+      , regex-with-pcre      == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -318,8 +274,8 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
-      , regex-with-pcre      == 0.10.0.1
+        regex                == 0.10.0.2
+      , regex-with-pcre      == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -352,7 +308,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
       , bytestring           >= 0.10.2.0
@@ -380,7 +336,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
       , bytestring           >= 0.10.2.0
@@ -408,8 +364,8 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
-      , regex-with-pcre      == 0.10.0.1
+        regex                == 0.10.0.2
+      , regex-with-pcre      == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -447,8 +403,8 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
-      , regex-with-pcre      == 0.10.0.1
+        regex                == 0.10.0.2
+      , regex-with-pcre      == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -487,7 +443,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -531,7 +487,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
@@ -577,7 +533,7 @@
       -Wwarn
 
     Build-depends:
-        regex                == 0.10.0.1
+        regex                == 0.10.0.2
       , array                >= 0.4
       , base                 >= 4 && < 5
       , base-compat          >= 0.6.0
diff --git a/src/Text/RE/PCRE/ByteString.hs b/src/Text/RE/PCRE/ByteString.hs
--- a/src/Text/RE/PCRE/ByteString.hs
+++ b/src/Text/RE/PCRE/ByteString.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.PCRE.RE
   , module Text.RE.Internal.SearchReplace.PCRE.ByteString
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.PCRE               as PCRE
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: B.ByteString
       -> RE
       -> Matches B.ByteString
@@ -74,13 +78,17 @@
       -> Match B.ByteString
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: B.ByteString -> SearchReplace RE B.ByteString -> B.ByteString
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: B.ByteString -> SearchReplace RE B.ByteString -> B.ByteString
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: B.ByteString -> SearchReplace RE B.ByteString -> B.ByteString
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/PCRE/ByteString/Lazy.hs b/src/Text/RE/PCRE/ByteString/Lazy.hs
--- a/src/Text/RE/PCRE/ByteString/Lazy.hs
+++ b/src/Text/RE/PCRE/ByteString/Lazy.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.PCRE.RE
   , module Text.RE.Internal.SearchReplace.PCRE.ByteString.Lazy
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.PCRE               as PCRE
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: LBS.ByteString
       -> RE
       -> Matches LBS.ByteString
@@ -74,13 +78,17 @@
       -> Match LBS.ByteString
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: LBS.ByteString -> SearchReplace RE LBS.ByteString -> LBS.ByteString
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: LBS.ByteString -> SearchReplace RE LBS.ByteString -> LBS.ByteString
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: LBS.ByteString -> SearchReplace RE LBS.ByteString -> LBS.ByteString
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/PCRE/Sequence.hs b/src/Text/RE/PCRE/Sequence.hs
--- a/src/Text/RE/PCRE/Sequence.hs
+++ b/src/Text/RE/PCRE/Sequence.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.PCRE.RE
   , module Text.RE.Internal.SearchReplace.PCRE.Sequence
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.PCRE               as PCRE
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: (S.Seq Char)
       -> RE
       -> Matches (S.Seq Char)
@@ -74,13 +78,17 @@
       -> Match (S.Seq Char)
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: (S.Seq Char) -> SearchReplace RE (S.Seq Char) -> (S.Seq Char)
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: (S.Seq Char) -> SearchReplace RE (S.Seq Char) -> (S.Seq Char)
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: (S.Seq Char) -> SearchReplace RE (S.Seq Char) -> (S.Seq Char)
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/PCRE/String.hs b/src/Text/RE/PCRE/String.hs
--- a/src/Text/RE/PCRE/String.hs
+++ b/src/Text/RE/PCRE/String.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.PCRE.RE
   , module Text.RE.Internal.SearchReplace.PCRE.String
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.PCRE               as PCRE
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: String
       -> RE
       -> Matches String
@@ -74,13 +78,17 @@
       -> Match String
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: String -> SearchReplace RE String -> String
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: String -> SearchReplace RE String -> String
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: String -> SearchReplace RE String -> String
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/TDFA/ByteString.hs b/src/Text/RE/TDFA/ByteString.hs
--- a/src/Text/RE/TDFA/ByteString.hs
+++ b/src/Text/RE/TDFA/ByteString.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.TDFA.RE
   , module Text.RE.Internal.SearchReplace.TDFA.ByteString
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.TDFA               as TDFA
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: B.ByteString
       -> RE
       -> Matches B.ByteString
@@ -74,13 +78,17 @@
       -> Match B.ByteString
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: B.ByteString -> SearchReplace RE B.ByteString -> B.ByteString
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: B.ByteString -> SearchReplace RE B.ByteString -> B.ByteString
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: B.ByteString -> SearchReplace RE B.ByteString -> B.ByteString
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/TDFA/ByteString/Lazy.hs b/src/Text/RE/TDFA/ByteString/Lazy.hs
--- a/src/Text/RE/TDFA/ByteString/Lazy.hs
+++ b/src/Text/RE/TDFA/ByteString/Lazy.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.TDFA.RE
   , module Text.RE.Internal.SearchReplace.TDFA.ByteString.Lazy
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.TDFA               as TDFA
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: LBS.ByteString
       -> RE
       -> Matches LBS.ByteString
@@ -74,13 +78,17 @@
       -> Match LBS.ByteString
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: LBS.ByteString -> SearchReplace RE LBS.ByteString -> LBS.ByteString
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: LBS.ByteString -> SearchReplace RE LBS.ByteString -> LBS.ByteString
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: LBS.ByteString -> SearchReplace RE LBS.ByteString -> LBS.ByteString
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/TDFA/Sequence.hs b/src/Text/RE/TDFA/Sequence.hs
--- a/src/Text/RE/TDFA/Sequence.hs
+++ b/src/Text/RE/TDFA/Sequence.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.TDFA.RE
   , module Text.RE.Internal.SearchReplace.TDFA.Sequence
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.TDFA               as TDFA
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: (S.Seq Char)
       -> RE
       -> Matches (S.Seq Char)
@@ -74,13 +78,17 @@
       -> Match (S.Seq Char)
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: (S.Seq Char) -> SearchReplace RE (S.Seq Char) -> (S.Seq Char)
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: (S.Seq Char) -> SearchReplace RE (S.Seq Char) -> (S.Seq Char)
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: (S.Seq Char) -> SearchReplace RE (S.Seq Char) -> (S.Seq Char)
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/TDFA/String.hs b/src/Text/RE/TDFA/String.hs
--- a/src/Text/RE/TDFA/String.hs
+++ b/src/Text/RE/TDFA/String.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.TDFA.RE
   , module Text.RE.Internal.SearchReplace.TDFA.String
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.TDFA               as TDFA
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: String
       -> RE
       -> Matches String
@@ -74,13 +78,17 @@
       -> Match String
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: String -> SearchReplace RE String -> String
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: String -> SearchReplace RE String -> String
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: String -> SearchReplace RE String -> String
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/TDFA/Text.hs b/src/Text/RE/TDFA/Text.hs
--- a/src/Text/RE/TDFA/Text.hs
+++ b/src/Text/RE/TDFA/Text.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.TDFA.RE
   , module Text.RE.Internal.SearchReplace.TDFA.Text
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.TDFA               as TDFA
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: T.Text
       -> RE
       -> Matches T.Text
@@ -74,13 +78,17 @@
       -> Match T.Text
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: T.Text -> SearchReplace RE T.Text -> T.Text
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: T.Text -> SearchReplace RE T.Text -> T.Text
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: T.Text -> SearchReplace RE T.Text -> T.Text
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
diff --git a/src/Text/RE/TDFA/Text/Lazy.hs b/src/Text/RE/TDFA/Text/Lazy.hs
--- a/src/Text/RE/TDFA/Text/Lazy.hs
+++ b/src/Text/RE/TDFA/Text/Lazy.hs
@@ -13,14 +13,14 @@
   (
   -- * Tutorial
   -- $tutorial
-  --
-  -- * The Match Operators
+
+  -- * The 'Matches' and 'Match' Operators
     (*=~)
   , (?=~)
-  -- * The SearchReplace Operators
+  -- * The 'SearchReplace' Operators
   , (*=~/)
   , (?=~/)
-  -- * The Classic rexex-base Match Operators
+  -- * The Classic rexex-base match Operators
   , (=~)
   , (=~~)
   -- * Matches
@@ -43,6 +43,7 @@
   , compileRegexWith
   , escape
   , escapeWith
+  , escapeREString
   , module Text.RE.TDFA.RE
   , module Text.RE.Internal.SearchReplace.TDFA.Text.Lazy
   ) where
@@ -62,7 +63,10 @@
 import qualified Text.Regex.TDFA               as TDFA
 
 
--- | find all matches in text
+-- | find all matches in text; e.g., to count the number of naturals in s:
+--
+--   @countMatches $ s *=~ [re|[0-9]+|]@
+--
 (*=~) :: TL.Text
       -> RE
       -> Matches TL.Text
@@ -74,13 +78,17 @@
       -> Match TL.Text
 (?=~) bs rex = addCaptureNamesToMatch (reCaptureNames rex) $ match (reRegex rex) bs
 
--- | search and replace once
-(?=~/) :: TL.Text -> SearchReplace RE TL.Text -> TL.Text
-(?=~/) = flip searchReplaceFirst
-
--- | search and replace, all occurrences
+-- | search and replace all occurrences; e.g., this section will yield a function to
+-- convert every a YYYY-MM-DD into a DD/MM/YYYY:
+--
+--   @(*=~/ [ed|${y}([0-9]{4})-0*${m}([0-9]{2})-0*${d}([0-9]{2})///${d}/${m}/${y}|])@
+--
 (*=~/) :: TL.Text -> SearchReplace RE TL.Text -> TL.Text
 (*=~/) = flip searchReplaceAll
+
+-- | search and replace the first occurrence only
+(?=~/) :: TL.Text -> SearchReplace RE TL.Text -> TL.Text
+(?=~/) = flip searchReplaceFirst
 
 -- | the regex-base polymorphic match operator
 (=~) :: ( Typeable a
