>>>>> "CE" == Carl Eklof <[EMAIL PROTECTED]> writes:
CE> My assumption was that the \b pattern in a regex would
CE> always match the beginning and end of a string (as
CE> documented in the perlre page). However on my build of
CE> 5.8.7 this is not the case if the character being
CE> matched at the beginning or the end is a
CE> "meta-character" ie. quotemeta would escape it. Also
CE> note that escaping the charcter doesn't seem to make a
CE> difference.
from perlre:
A word boundary ("\b") is a spot between two characters that has
a "\w" on one side of it and a "\W" on the other side of it (in
either order), counting the imaginary characters off the
beginning and end of the string as matching a "\W".
note that \b must have opposing character types on each side.
so with that in mind, let's look at your examples and both sides of \b
CE> Here are some more examples, run in `perl -d -e 1`:
CE> DB<26> p '/' =~ m"\/\b";
/ is a \W and so is the end of regex so \b fails to match
CE> DB<27> p '/' =~ m"\/";
CE> 1
no \b to worry about
CE> DB<28> p 'a' =~ m"a\b";
CE> 1
'a' on one side and end of regex which is \W so this matches
CE> DB<29> p 'a' =~ m"\ba\b";
CE> 1
each /b is between a \w and outside the regex which is \W so it matches.
CE> DB<32> p '/' =~ m"\/\b";
i am sure the rest of the examples will fall into the same reasons why
the above work as they do. i leave them as an exercise to the OP.
CE> Maybe this is not a bug, and this is just another
CE> nuance of regexs' that I have not learned, but it
CE> looks very fishy.
no stinky fish here, just a subtle misunderstanding of the docs.
uri
--
Uri Guttman ------ [EMAIL PROTECTED] -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org
_______________________________________________
Boston-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/boston-pm