$ perl -Mstrict -Mwarnings -E ' my $regex = do { my @range1 = 1 .. 8; my @range2 = 1 .. 48; local $" = q{|}; qr{(?x) ^ GigabitEthernet ( @range1 ) / 0 / ( @range2 ) $ }; }; say $regex; say qq{$_: }, m{$regex} ? q{MATCHED} : q{FAILED} for qw{ GigabitEthernet1/0/48 GigabitEthernet1/0/49 GigabitEthernet1/0/236 GigabitEthernet31/0/48 GigabitEthernet3/0/13 };' (?^u:(?x) ^ GigabitEthernet ( 1|2|3|4|5|6|7|8 ) / 0 / ( 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48 ) $ ) GigabitEthernet1/0/48: MATCHED GigabitEthernet1/0/49: FAILED GigabitEthernet1/0/236: FAILED GigabitEthernet31/0/48: FAILED GigabitEthernet3/0/13: MATCHED $