in reply to Re^2: really non greedy match
in thread really non greedy match

Bad use of split. The first arg of split is a separator. You want //g.
my @parts = $text =~ /START((?:(?!START|END).)*)END/sg;