You might consider creating your own custom tag. This example is probably not well thought through, it's basically just a tweaking of the example given at the end of perlre, but I'd never tried this before so I did what came easy:)
#! perl -slw
use strict;
package CustomReTag;
use overload;
sub import {
shift;
die "No argument to customre::import allowed" if @_;
overload::constant 'qr' => \&convert;
}
sub invalid { die "/$_[0]/: invalid escape '\\$_[1]'"}
my %rules = (
'\\' => '\\',
'Y|' => qr/<\w\w>/
);
sub convert {
my $re = shift;
$re =~ s{ \\ ( \\ | Y . ) }
{ $rules{$1} or invalid($re,$1) }sgex;
return $re;
}
package main;
my $s = '<5b>I <5c>like <5d>tacos';
my $re = CustomReTag::convert '(\Y|tacos)';
$s =~ s[$re][yummy $1]g;
print $s;
__END__
P:\test>junk
<5b>I <5c>like yummy <5d>tacos
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
Hooray!
Wanted!