my $text = "[Part1,Part2],[Part3],[Part4, Part5],[Part6]"; # splitte zuallerst am ],[, erst danach am [ oder ]; erzeugt ggfs. am Anfang und Ende Leerfelder! my @data = split m{\],\[|\[|\]}, $text; print join "\n", @data, '';