Description from the author:
"This package contains three rexx utilities that can be used to collect news and mail, and/or deliver mail. They are written in OS/2 Rexx using RxSock. They can be used interchangeably with KA9Q."
Note that this package also contains a REXX DLL with a routine to handle regular-expressions (including the source). Following is the description for this routine taken from the source code:
From: rs@mirror.TMC.COM (Rich Salz) Newsgroups: net.sources Subject: Small shell-style pattern matcher Message-ID: <596@mirror.TMC.COM> Date: 27 Nov 86 00:06:40 GMT There have been several regular-expression subroutines and one or two filename-globbing routines in mod.sources. They handle lots of complicated patterns. This small piece of code handles the *?[]\ wildcard characters the way the standard Unix(tm) shells do, with the addition that "[^.....]" is an inverse character class -- it matches any character not in the range ".....". Read the comments for more info. For my application, I had first ripped off a copy of the "glob" routine from within the find(1) source, but that code is bad news: it recurses on every character in the pattern. I'm putting this replacement in the public domain. It's small, tight, and iterative. Compile with -DTEST to get a test driver. After you're convinced it works, install in whatever way is appropriate for you. I would like to hear of bugs, but am not interested in additions; if I were, I'd use the code I mentioned above. */ /* ** Do shell-style pattern matching for ?, \, [], and * characters. ** Might not be robust in face of malformed patterns; e.g., "foo[a-" ** could cause a segmentation violation. ** ** Written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986. */ /* * Modified 6Nov87 by John Gilmore (hoptoad!gnu) to return a "match" * if the pattern is immediately followed by a "/", as well as \0. * This matches what "tar" does for matching whole subdirectories. * * The "*" code could be sped up by only recursing one level instead * of two for each trial pattern, perhaps, and not recursing at all * if a literal match of the next 2 chars would fail. */ /* Modified by Anders Klemets to take an array of pointers as an optional argument. Each part of the string that matches '*' is returned as a null-terminated, malloced string in this array. */