Stefan Welscher: (REGEX) Negative Lookbehind bei split()

Beitrag lesen

Moinsen,
es geht um folgendes Problem:

Ich habe einen String, den ich anhand von Unterstrichen teilen möchte:
PART1_PART2_PART3 => Array(PART1,PART2,PART3)

Soweit kein Problem, funktioniert problemlos mit:
my @array=split(/[_]+/,$string);

Nur dumm, dass ich jetzt Fälle habe, in denen ich den Unterstrich nicht teilen darf.
Jetzt hab ich mir gedacht, dass ich die Unterstriche dort escapen lasse wo sie nicht geteilt werden sollen, also z.B.

PART1_PART\_2_PART3 => Array(PART1,PART_2,PART3)

Dafür wollte ich negative Lookbehinds bei split verwenden:

my @array=split(/(?<!\)[_]+/,$string);

Leider unterscheidet sich das Ergebnis nicht vom ursprünglichen Split, es werden also weiter alle Unterstriche getrennt. Das Backslash zum Excapen fällt aber weg.

Was mach ich falsch?
Bzw. lassen sich die Lookahead/Lookbehind-Sachen überhaupt mit Split kombinieren?

Besten Dank!