my $remainder = $original_string; my @answers; while ( defined $remainder ) { my $extracted; ( $extracted, $remainder ) = extract_tagged( $remainder, 'START', 'END', undef, { bad => ['START'] }, ); push @answers, $extracted; }