use strict; use warnings; my $str = scalar reverse "QB Carson Palmer RB Chris Ivory RB Eddie Lacy WR A.J. Green WR John Brown WR Davante Adams TE Martellus Bennett FLEX Jeremy Hill DST Panthers"; for ($str =~ /(.*?[A-Z][A-Z][A-Z]?[A-Z]?)/g) { $_ = scalar reverse $_; chomp( my ($role,@name) = split ); print "$role -> @name\n"; } __DATA__ DST -> Panthers FLEX -> Jeremy Hill TE -> Martellus Bennett WR -> Davante Adams WR -> John Brown WR -> A.J. Green RB -> Eddie Lacy RB -> Chris Ivory QB -> Carson Palmer