Skip to content

Commit

Permalink
Update for v1.10: use '(*)' instead of '#' as dagger replacement.
Browse files Browse the repository at this point in the history
dholland finds the '#' unintuitive and hard to read.
  • Loading branch information
wiz committed Aug 22, 2015
1 parent 3c28c2a commit 3bcb6a2
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions lib/libc/regex/re_format.7
@@ -1,4 +1,4 @@
.\" $NetBSD: re_format.7,v 1.10 2013/01/25 11:51:42 wiz Exp $
.\" $NetBSD: re_format.7,v 1.11 2015/08/22 14:04:54 wiz Exp $
.\"
.\" Copyright (c) 1992, 1993, 1994
.\" The Regents of the University of California. All rights reserved.
Expand Down Expand Up @@ -83,23 +83,23 @@ and obsolete REs (roughly those of
Obsolete REs mostly exist for backward compatibility in some old programs;
they will be discussed at the end.
1003.2 leaves some aspects of RE syntax and semantics open;
`#' marks decisions on these aspects that
`(*)' marks decisions on these aspects that
may not be fully portable to other 1003.2 implementations.
.Pp
A (modern) RE is one# or more non-empty#
A (modern) RE is one(*) or more non-empty(*)
.Em branches ,
separated by `|'.
It matches anything that matches one of the branches.
.Pp
A branch is one# or more
A branch is one(*) or more
.Em pieces ,
concatenated.
It matches a match for the first, followed by a match for the second, etc.
.Pp
A piece is an
.Em atom
possibly followed
by a single# `*', `+', `?', or
by a single(*) `*', `+', `?', or
.Em bound .
An atom followed by `*' matches a sequence of 0 or more matches of the atom.
An atom followed by `+' matches a sequence of 1 or more matches of the atom.
Expand All @@ -110,7 +110,7 @@ A
is `{' followed by an unsigned decimal integer, possibly followed by `,'
possibly followed by another unsigned decimal integer,
always followed by `}'.
The integers must lie between 0 and RE_DUP_MAX (255#) inclusive,
The integers must lie between 0 and RE_DUP_MAX (255(*)) inclusive,
and if there are two of them, the first may not exceed the second.
An atom followed by a bound containing one integer
.Em i
Expand All @@ -133,19 +133,19 @@ through
(inclusive) matches of the atom.
.Pp
An atom is a regular expression enclosed in `()' (matching a match for the
regular expression), an empty set of `()' (matching the null string)#, a
regular expression), an empty set of `()' (matching the null string)(*), a
.Em bracket expression
(see below), `.' (matching any single character),
`^' (matching the null string at the beginning of a line),
`$' (matching the null string at the end of a line),
a `\e' followed by one of the characters `^.[$()|*+?{\e'
(matching that character taken as an ordinary character),
a `\e' followed by any other character#
a `\e' followed by any other character(*)
(matching that character taken as an ordinary character,
as if the `\e' had not been present#),
as if the `\e' had not been present(*)),
or a single character with no other significance (matching that character).
A `{' followed by a character other than a digit is an ordinary
character, not the beginning of a bound#.
character, not the beginning of a bound(*).
It is illegal to end an RE with `\e'.
.Pp
A
Expand All @@ -161,7 +161,7 @@ for the full
.Em range
of characters between those two (inclusive) in the collating sequence,
e.g. `[0-9]' in ASCII matches any decimal digit.
It is illegal# for two ranges to share an endpoint, e.g. `a-c-e'.
It is illegal(*) for two ranges to share an endpoint, e.g. `a-c-e'.
Ranges are very collating-sequence-dependent,
and portable programs should avoid relying on them.
.Pp
Expand Down Expand Up @@ -194,7 +194,7 @@ of all collating elements equivalent to that one, including itself.
the treatment is as if the enclosing delimiters were `[.' and `.]'.)
For example, if o and '\(^o' are the members of an equivalence class,
then `[[=o=]]', `[[=\(^o'=]]', and `[o\(^o']' are all synonymous.
An equivalence class may not# be an endpoint
An equivalence class may not(*) be an endpoint
of a range.
.Pp
Within a bracket expression, the name of a
Expand All @@ -214,7 +214,7 @@ These stand for the character classes defined in
A locale may provide others.
A character class may not be used as an endpoint of a range.
.Pp
There are two special cases# of bracket expressions:
There are two special cases(*) of bracket expressions:
the bracket expressions `[[:\*[Lt]:]]' and `[[:\*[Gt]:]]' match
the null string at the beginning and end of a word respectively.
A word is defined as a sequence of word characters
Expand Down Expand Up @@ -260,7 +260,7 @@ When it appears inside a bracket expression, all case counterparts
of it are added to the bracket expression, so that (e.g.) `[x]'
becomes `[xX]' and `[^x]' becomes `[^xX]'.
.Pp
No particular limit is imposed on the length of REs#.
No particular limit is imposed on the length of REs(*).
Programs intended to be portable should not employ REs longer
than 256 bytes,
as an implementation can refuse to accept such REs and remain
Expand All @@ -274,9 +274,9 @@ with `{' and `}' by themselves ordinary characters.
The parentheses for nested subexpressions are `\e(' and `\e)',
with `(' and `)' by themselves ordinary characters.
`^' is an ordinary character except at the beginning of the
RE or# the beginning of a parenthesized subexpression,
RE or(*) the beginning of a parenthesized subexpression,
`$' is an ordinary character except at the end of the
RE or# the end of a parenthesized subexpression,
RE or(*) the end of a parenthesized subexpression,
and `*' is an ordinary character if it appears at the beginning of the
RE or the beginning of a parenthesized subexpression
(after a possible leading `^').
Expand Down

0 comments on commit 3bcb6a2

Please sign in to comment.