This is the mail archive of the
mailing list for the Cygwin project.
Re: cygwin/regex is non-POSIX
On Mon, Jan 19, 2004 at 01:54:06PM -0500, Sam Steingold <email@example.com> wrote:
> > * Yitzchak Scott-Thoennes <firstname.lastname@example.org> [2004-01-17 21:04:50 -0800]:
That's cute. But what if a real address matches a rot13'd one?
> > Also, it says backrefs part of basic regular expressions but not
> > exteneded ones. From your mention of | I assume you are using
> > REG_EXTENDED. If REG_EXTENDED|REG_BACKR allows backrefs, it doesn't
> > appear to be documented.
> I am not sure what you mean here. I would like to interpret your words
> as follows, so that I can agree with you:
> does not mention REG_BACKR, so it's mere presence can probably be
> contrued as a violation of the standard (unless it is enabled whenever
> REG_EXTENDED is). REG_BACKR is also not mentioned in "man regex", so
> it is not documented. Right?
I was saying xbd_chap09 (my local copy, haven't rechecked the online one for any changes, but don't expect any) says back references are only available if you *don't* say REG_EXTENDED (or at least that's my reading of it). The regex package doc (man 3 regex, man 7 regex) also discourage using them even then.
> Now, whether I add REG_BACKR to cflags (together with REG_EXTENDED) or
> eflags, I do not get back references: "^(x)+\\1$" does not match "xx"
> (should be "xx" for whole and "x" for the group).
Then I misunderstood you. I thought you were saying REG_BACKR allowed
backrefs even with REG_EXTENDED. From the include file, it looks more to
me as if it is a private flag to indicate backrefs were actually found.
> Finally, a common extension appears to be the use or "?" after a
> repetition specification to mean non-greedy matching, e.g.
> "a+?" will match only the first "a" in "aaaa".
You want the pcre packages then (pcre and pcre-devel). An important
to know non-posix feature of these is that "ab" matched against /a|ab/
will match the a where AIUI posix requires matching the ab (i.e. posix
requires longest match, but pcre lets leftmost | option take
precedence). Not actually sure where the regex package falls WRT
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html