use warnings; use strict; while (my $fs = ) { if ($fs =~ m{(?i)^/(?:oracle|db|db2|informix|data)(?:\s+\z||\s+\w+\z)} ) { print "match: $fs"; } } __DATA__ junk /oracle /db /db2 /informix /data again/debo junk2 /oracle/foo /db/foo /db2/foo /informix/debo/