## in the substitution part (the second half), ## the /\[B\]/ is turned into /[B]/, see results ## and deparse output at the end my $t = '[A] yoda [B] jeffa [C]'; $t =~ s { \[A\] (.*?) \[C\] } [ my $r = $1; if( $r =~ /\[B\]/ ){ $r =~ s/\[B\]/GOT B/; } $r; ]gsex; my $o = '[A] yoda [B] jeffa [C]'; $o =~ s { \[A\] (.*?) \[C\] } { my $r = $1; if( $r =~ /\[B\]/ ){ $r =~ s/\[B\]/GOT B/; } $r; }gsex; # happens here also, but is not significant # since <> aren't metacharacters my $p = ' yoda jeffa '; $p =~ s { \ (.*?) \ } < my $r = $1; if( $r =~ /\/ ){ $r =~ s/\/GOT B/; } $r; >gsex; print " $t $o $p "; __END__ yoda [GOT B] jeffa yoda GOT B jeffa yoda GOT B jeffa # -MO=Deparse output my $t = '[A] yoda [B] jeffa [C]'; $t =~ s[\n \[A\]\n (.*?)\n \[C\]\n ][my $r = $1; if ($r =~ /[B]/) { $r =~ s/[B]/GOT B/; } $r;]egsx; my $o = '[A] yoda [B] jeffa [C]'; $o =~ s[\n \[A\]\n (.*?)\n \[C\]\n ][my $r = $1; if ($r =~ /\[B\]/) { $r =~ s/\[B\]/GOT B/; } $r;]egsx; my $p = ' yoda jeffa '; $p =~ s[\n \n (.*?)\n \n ][my $r = $1; if ($r =~ //) { $r =~ s//GOT B/; } $r;]egsx; print "\n$t\n$o\n$p\n";