It is impossible to do in your context, its open end. The only way to make it out is to use it not the way you want, but its still unacceptable premise.
/"([^"]*?)"(?!, -)|"[^"]*?"(?=, -)/
Then check for capture group 1 in each match, something like this:
$rx = qr/"([^"]*?)"(?!, -)|"[^"]*?"(?=, -)/; while (' "ingnore me", - "but not me" ' =~ /$rx/g) { print "'$1'\n" if defined $1 }
sln
source share