Well, sort of ;) Take these examples:
s/\bold\b/new/gi;
# 1: replaces all instances of the string, e.g. "old",
# "OLD", "Old", "OlD" on either side with "new".
s/\bold\b/new/g;
# 2: replaces "old" with "new" -- case sensitive here.
s/\bOLD\b/NEW/g;
# 3: replaces "OLD" with "NEW"
s/\bOLD\b/NEW/gi;
# 4: replaces same variants of "OLD" as in 1 with "NEW"
So, to finally answer your question: yes, but I think you might need that other "\b".
Something that might help you a lot, as it did for me, is YAPE::Regex and YAPE::Regex::Explain by our very own japhy. They can be downloaded off the CPAN. For example:
#!/usr/bin/perl
use YAPE::Regex::Explain;
print YAPE::Regex::Explain->new(qr/\bold\b/i)->explain;
gives the following explanation.
The regular expression:
(?i-msx:\bold\b)
matches as follows:
NODE EXPLANATION
----------------------------------------------------------------------
(?i-msx: group, but do not capture (case-insensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
\b the boundary between a word char (\w) and
something that is not a word char
----------------------------------------------------------------------
old 'old'
----------------------------------------------------------------------
\b the boundary between a word char (\w) and
something that is not a word char
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------
--
Allolex
|