#!/usr/bin/perl use v5.12; use warnings; use strict; my @alt = ( qr/foo\d+/, qr/bar\S+?/, ); my $re = join '|', map qr/($_)/, @alt; for my $word (qw[foofoo2010 subarashii bowwowmeow]) { my $_ = $word; if (s/$re/($+)/) { say "$word => $_: $alt[$#- - 1]"; } else { say "$word: NO_MATCH"; } }