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: Bug in POSIX.2 regex word boundary matching


On Mar 14 19:37, dominique.pelle@free.fr wrote:
> Bleah. #include statements were missing in my
> previously posted sample test case.  Here
> is the test case again with #include statements
> this time:
> 
> $ cat regex-bug.c
> 
> #include <stdio.h>
> #include <regex.h>
> #include <stdlib.h>
> 
> int main()
> {
>   regex_t    r;
>   regmatch_t pmatch[2];
> 
>   if (regcomp(&r, "\\bfoobar\\b", REG_EXTENDED) != 0) {
>     fprintf(stderr, "regcomp failed\n");
>     exit(-1);
>   }
> 
>   /* I'd expect above regex to match following string */
>   if (regexec(&r, "test foobar test", 2, pmatch, 0) == 0) {
>     fprintf(stderr, "OK (match)\n");  /* expected behavior */
>   } else {
>     fprintf(stderr, "FAIL (mismatch)\n"); /* unexpected!? */
>   }
>   return 0;
> }
> 
> $ gcc regex-bug.c
> $ ./a.out
> 
> Outcome on Cywgin ................ FAIL (mismatch)
> 
> Outcome on Linux (Ubuntu-5.10) ... OK (match)

Linux uses the glibc GNU regex library, which allows extensions known
from perl, like \b, \w.  Cygwin's regex is Henry Spencer's implementaton
which does not know these extensions.  Note that the POSIX standard
of regular expressions does not contain these extensions, see also
http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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