@strings = ('A A C D','A A/B C D','A/B A C D','A/B A/B C D'); foreach $string (@strings) { ($third) = $string =~ m/(?:A|A\/B) (?:A|A/B) (\w+) \w+/; printf "%s - %s\n", $string, $third }