my @parts = $string =~ /([^:\\]*(?:\\.[^:\\]*)*)(?(?{length $^N})|(?!))/g;