This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygwin/regex is non-POSIX

On Mon, Jan 19, 2004 at 01:54:06PM -0500, Sam Steingold <> wrote:
> > * Yitzchak Scott-Thoennes <> [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:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]