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" #### #!/usr/bin/perl use YAPE::Regex::Explain; print YAPE::Regex::Explain->new(qr/\bold\b/i)->explain; #### 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 ----------------------------------------------------------------------