#!/usr/bin/env perl -l use strict; use warnings; my $data = '[-3|1|29x250+46+26|200+300+464|Get]... superfluous ...'; my $re = qr{^(?:[^|]*\|){3}([^|]*)}; if ($data =~ $re) { my @out = split /\+/ => $1; print "@out"; }