use strict; use warnings; #wild ass guess foreach (qw( /HD123FA45 /HD123FA45/anything anything/HD123FA45 /FC/blah /LM /H4p5 asdf/blah/x/H4p9 /asdf7758 )) { print "$_ "; if (/\/(H|HD)[0-9]{1,3}(FA|FC|C|P|CO)[0-9]{1,3}$/i or /\/(FC|LM|CO)/i) { print "\t...match!\n"} else {print "\t...no match!\n";} } __END__ /HD123FA45 ...match! /HD123FA45/anything ...no match! anything/HD123FA45 ...match! /FC/blah ...match! /LM ...match! /H4p5 ...match! asdf/blah/x/H4p9 ...match! /asdf7758 ...no match!