Programmer's WorkBench (pwb.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
Non-UNIX Regular Expressions
◄Up► ◄Contents► ◄Index► ◄Back►
─────Programmer's WorkBench─────────────────────────────────────────────────
PWB uses the following non-UNIX regular-expression syntax:
Syntax Description
\c Escape: matches a literal occurrence of the character
<c> and ignores any special meaning of <c> in a
regular expression.
For example, the expression '\?' matches a question
mark '?', the expression '\^' matches a caret '^', and
the expression '\\' matches a backslash '\'.
? Wildcard: matches any single character.
For example, the expression 'a?a' matches 'aaa' and
'a1a' but not 'aBBBa'.
^ Beginning of line.
For example, the expression '^The' matches the word
'The' only when it occurs at the beginning of a
line.
$ End of line.
For example, the expression 'end$' matches the word
'end' only when it occurs at the end of a line.
[class] Character class: matches any one character in the
class. Use a dash (-) to specify ranges. Within a
class, all characters except ~-\] are treated
literally.
For example, '[a-zA-Z*]' matches any alphabetic
character or asterisk, and '[abc]' matches a single
'a', 'b', or 'c'.
[~class] Inverse of character class: matches any single
character not in the class.
For example, '[~0-9]' matches any character that is
not a digit.
x* Minimal matching: matches zero or more occurrences of
<x>, where <x> is a single character or a group of
characters enclosed in parentheses (()), brackets
([]), or braces ({}).
For example, the regular expression 'ba*b' matches
'baaab', 'bab', and 'bb'.
x+ Minimal matching plus (shorthand for xx*): matches one
or more occurrences of <x>.
For example, the regular expression 'ba+b' matches
'baab' and 'bab' but not 'bb'.
x@ Maximal matching: identical to x*, except that it
matches as many occurrences as possible.
See: ◄Non-UNIX Matching Method►
x# Maximal matching plus: identical to x+, except that
it matches as many occurrences as possible.
See: ◄Non-UNIX Matching Method►
(x!y!z) Alternation: matches one from a set of alternate
patterns. The alternates are tried in left-to-right
order. The next alternate is tried only when the rest
of the pattern fails.
For example, the regular expression '(ww!xx!xxyy)zz'
matches 'xxzz' on the second alternative and 'xxyyzz'
on the third.
TIP: To match zero or one occurrences of a pattern,
use alternation with an empty alternative:
(x!)
This specifies one occurrence of <x> or nothing.
(x) Grouping. Groups a regular expression so that you can
use a repeat operator on the subexpression.
For example, the regular expression '(Test)+' matches
'Test' and 'TestTest'.
~x "NOT" function: matches nothing but checks to see if
the text matches <x> at this point and fails if it
does.
For example, '^~(if!while)?*$' matches all lines that
do not begin with 'if' or 'while'.
x^<n> Power function: matches <n> copies of <x>.
For example, 'w^4' matches 'wwww', and '(a?)^3'
matches 'a#aba5'.
{x} Tagged expression: marked text, which you can refer to
as '$n' elsewhere in the find or replacement string.
Within a find string, PWB finds text that contains the
tagged text. Within a replacement string, PWB reuses
the matched text in the replacement.
$n Reference to text matched by a tagged expression.
The specific substring is indicated by <n>. The first
tagged substring is indicated as '$1', the second as
'$2', and so on. A '$0' represents the entire match.
:e Predefined regular expression, where <e> is a letter
that specifies the regular expression.
See: ◄Predefined Regular Expressions►
-♦-