my $test = qq|1-10,20 some.thing [[else]],bla bla bla|; my @temp = split /([,-\s\.\]\[]+)/, $test; use Data::Dumper; print Dumper(@temp);