my first instinct was to split the longer string into an array on ' - ' and then use a regex on each element in the array.
foreach (@array) {
@pieces = split / - /;
foreach (@pieces) {
#then just grab the last full word
# do regex stuff here.
if (/(\w+)$/) {
push @newarray, $1;
}
}
}