use strict; use warnings; # use re 'debug'; my $s = '#@##@###@####@#####@'; my @list = reverse split '@(?=(##)*[^#])', reverse $s; print scalar reverse $_, "\n" for @list; #### Output: #@## ## ###@#### ## #####@