regex is a regular expression toolkit for regex-base with:

  • text-replacement operations with named captures;
  • special datatypes for matches and captures;
  • compile-time checking of RE syntax;
  • a unified means of controlling case-sensitivity and multi-line options;
  • high-level AWK-like tools for building text processing apps;
  • the option of using match operators with reduced polymorphism on the text and/or result types;
  • regular expression macros including:
    • a number of useful RE macros;
    • a test bench for testing and documenting new macro environments;
  • built-in support for the TDFA and PCRE backends;
  • comprehensive documentation and copious examples.

See the About page for details.

regex and regex-examples

The library and tutorial, tests and examples have been split across two packages:

  • the regex package contains the regex library with the Posix TDFA back end
  • the regex-with-pcre library package contains the extra modules needed for the PCRE back end
  • the regex-examples package contains the tutorial, tests and example programs.

Road Map

    ☒  2017-01-26 v0.0.0.1 Pre-release (I)

    ☒  2017-01-30 v0.0.0.2 Pre-release (II)

    ☒  2017-02-18 v0.1.0.0 Proposed core API with presentable Haddocks

    ☒  2017-02-19 v0.2.0.0 Package split into regex and regex-examples

    ☒  2017-02-20 v0.2.0.1 Remove library from regex-examples

    ☒  2017-02-21 v0.2.0.2 Fix tests for Hackage

    ☒  2017-02-21 v0.2.0.3 Tweak README/index layout

    ☒  2017-02-22 v0.2.0.4 Repair re-gen-modules-test for Windows

    ☒  2017-02-26 v0.3.0.0 API adjustments

    ☒  2017-03-05 v0.5.0.0 Ready for review: API, tutorials and examples finalized

    ☒  2017-03-13 v0.6.0.0 Split out PCRE

    ☒  2017-03-13 v0.6.0.1 Fix .travis.yml release-stack script

    ☒  2017-03-15 v0.7.0.0 Better organization of API

    ☒  2017-03-16 v0.8.0.0 Tidy up the API

    ☐  2017-03-18 v0.9.0.0 Add type-safe replacement templates and use TemplateHaskellQuotes

    ☐  2017-03-31 v1.0.0.0 First stable release

    ☐  2017-08-31 v2.0.0.0 Fast text replacement with benchmarks

See the Roadmap page for details.

The regex blog

Check out the regex blog for news articles and discussion concerning all things regex.

Build Status

Hackage BSD3 License Un*x build Windows build Coverage

See build status page for details.

Installing the Package

The package can be easily installed with cabal or stack on GHC-8.0, 7.10 or 7.8 for the above platforms. See the Installation page for details.

The Tutorial Tests and Examples

See the Tutorial page and Examples page for details.

Helping Out

If you have any feedback or suggestion then please drop us a line.

    t @hregex



The Contact page has more details.


The Haddocks can be found at

The Macro Tables

The macro environments are an important part of the package and are documented here.

The Directory

A handy overview of the domain can be found here.

The Changelog

The changelog is posted here.

The Authors

This library was written and is currently maintained by Chris Dornan aka @cdornan


-*-change-log-*- Chris Dornan <> 2017-03-16
* Tidy up the API after recent reorganization (#76) Chris Dornan <> 2017-03-15
* Fix and extend Replace class (#74)
* Better package organisation (#73)
* Generalise sed' in progress (#72)
* compileRegex to take just a string (#68)
* Fix comment reference in Text.RE.PCRE in progress (#66) Chris Dornan <> 2017-03-13
* Fix .travis.yml release-stack script (#67) Chris Dornan <> 2017-03-13
* Split out rexex-with-pcre package (#65) Chris Dornan <> 2017-03-05
* Fix inter-operation of =~ & =~~ and named captures (#55)
* Add escaping functions (#37)
* Test Hackage release tarballs on Travis CI (#51)
* Fix up template replace ordinals (#52)
* Complete the web site (#39)
* Complete the Tutorial, Tests and Examples (#38)
* Complete narrative in literate modules (#8) Chris Dornan <> 2017-02-26
* Clean up API to use camelCase conventions
* Use -Werror in development and testing, -Warn for Hackage
* Integrate the regex blog
* Better presentation of ghci tryouts in the Tutorial
* Various minor README upgrades and fixes Chris Dornan <> 2017-02-22
* Repair re-gen-modules-test for Windows Chris Dornan <> 2017-02-21
* README/index layout tweak Chris Dornan <> 2017-02-21
* Fix re-gen-modules-test for Hackage (#45)
* Minor style tweks to README/index Chris Dornan <> 2017-02-20
* remove library from regex-examples (#43) Chris Dornan <> 2017-02-19
* Split off the tutorial tests and examples into regex-examples,
leaving just the library in regex Chris Dornan <> 2017-02-18
* Cabal file generated from a DRY template
* Library dependencies minimised, test depndencies moved into
* A proper static website generated by 're-prep all'
* README/sidebar Badges are a static record of current release
with links to a live build-status reporting on HEAD
* Added !$, !$?, !$$ and !$$? alternatives for looking up captures
in a Match
* Text.RE.Parsers now generate Text where they were generating String
* %nat, %int, %frac and %hex get their new names Chris Dornan <> 2017-01-30
* Fix for Windows
* Remove hsyslog dependency
* Establish Travis CI, AppVeyor and integrations
* Fix time parser to use Fixed arithmetic
* Miscelaneous minor adjustments Chris Dornan <> 2017-01-26
* First public release
comments powered byDisqus