##
my $re;
if (...) { $re = qr/.../ }
elsif (...) { $re = qr/.../ }
elsif (...) { $re = qr/.../ }
else { die '...' }
/$re/ or die("Bad data");
print "Caught $1\n"
####
my %re_lookup = (
... => qr/.../,
... => qr/.../,
... => qr/.../,
);
/$re_lookup{...}/ or die("Bad data");
print "Caught $1\n"