regex - Henry Spencer's regular expression libraries

There are three bodies of source code that can be referred to as "Henry Spencer's regular expression library".


Firstly the "old library" or the "book library". This dates back to around 1986 and was updated for the book Software Solutions In C, ed. Dale Schumacher, Academic Press, 1994 [ref: Usenet]. This version is a bit later: the man page is dated 5 September 1996 and the tar archive was created on 4 April 1998.

Originally from an ftp server at zoo.toronto.edu.

regexp.old.tar.Z (26302 bytes), regexp.old.zip (20914 bytes). These packages contain identical files.


The second is the "BSD library". This is a POSIX.2 compliant library that was included in 4.4BSD Unix. Spencer wrote that it was basically an alpha release, and pretty slow [ref: Usenet].

For more information on this library, see the README and COPYRIGHT files and two man pages regex(3) and regex(7).

Originally from an ftp server at zoo.toronto.edu, this version is dated 10 August 1999.

regex.shar (160821 bytes), regex3.8a.tar.gz (47960 bytes), regex3.8a.zip (54422 bytes). These packages contain identical files.

I have also prepared a shared library version, using Autoconf etc., to allow installation as a system library in GNU/Linux or similar systems. See the WHATSNEW page for details of changes.

rxspencer-alpha3.8.g5.tar.gz (342860 bytes, December 15, 2013)


The third is the "Tcl library", which was added to Tcl in 1999 (version 8.1) and supports wide-character Unicode. Although Spencer intended to release this library as a standalone package [ref: Usenet], I don't think he ever got around to it.

However, a port by Walter Waldo's is available: hsrex.tar.gz (79908 bytes). Documentation is somewhat lacking for this library, but here's a basic example for the ASCII version: hsrex-char.c. The Tcl library documentation may also be useful.