>perl -wMstrict -le
"my $s =
'foobar baz \"x\" %&*';
print qq{'$s'};
;;
$s =~ s{ < ([^>]+) > ((?: (?! \1) .)*) \1 > }{$2}xmsg;
print qq{'$s'};
;;
;;
$s = 'foo b > bar \"stuff\" *&! Cd>';
print qq{'$s'};
;;
my @tags = qw(b cd);
my $tag = join '|', @tags;
$tag = qr{ (?i) $tag }xms;
use re 'eval';
$s =~ s{ < \s* ($tag) \s* >
((?: (?! \s* \1) .)*)
\s* ([^>]*) (?(?{ lc($1) ne lc($^N) }) (*F)) \s* >
}
{$2}xmsg;
print qq{'$s'};
"
'foobar baz "x" %&*'
'foobar baz "x" %&*'
'foo b > bar "stuff" *&! Cd>'
'foo bar "stuff" *&!'