##
Pass 1: (test) (431)|
Pass 2: (alpha)|(123)|
Pass 3: (bravo)|(542)|
Pass 4: (charlie)|(412)
####
Pass 1: (431)|(alpha|123|bravo|542|charlie|412)
## ##
s{(?:(.*?) |\G([^|]*?)\|)([^|]*?)(?:\|| )}{
"" . (defined($1)?$1:$2) . " $3 "
}seg;
####
s{(.*?) (.*?) }{
my $s = "|$1|$2";
$s =~ s{\|([^|]*)\|([^|]*)}{$1 $2 }sg;
$s
}seg;