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: 1.5, 1.7: Bash regex not recognizing word boundaries

Hash: SHA1

According to Mark J. Reed on 10/19/2009 6:34 PM:
> On Mon, Oct 19, 2009 at 4:50 PM, Allen Halsey wrote:
> These should print "Matched", but they don't:
> $ REGEX='\bcat\b'
> $ [[ "dog cat bird" =~ $REGEX ]] && echo "Matched"
> $ REGEX='\<cat\>'
> $ [[ "dog cat bird" =~ $REGEX ]] && echo "Matched"
> It's worth noting that this is not limited to Cygwin; I'm seeing the
> same behavior on OS X (with the same version of bash as my Linux
> system where the above works as intended).   I suspect it's a factor
> of the regex library used to build bash rather than bash itself.

Indeed - \b is a GNU extension available in glibc's regcomp(), but not
required by POSIX nor available in newlib.  Unless/until someone
contributes patches to write the same extensions to the POSIX interface,
then bash won't be able to make use of those extensions.  One other option
would be to ask the upstream bash project if the maintainer would be
willing to pull in GNU regex.c on platforms where regcomp() is
POSIX-compliant but lacks GNU extensions.  But it's unfortunately not on
the top of my priority list.

- --
Don't work too hard, make some time for fun as well!

Eric Blake   
volunteer cygwin bash maintainer
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at
Comment: Using GnuPG with Mozilla -


Problem reports:
Unsubscribe info:

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