while ( $string =~ /(start.+?end)/gis ) { my $data = $1; $data =~ s/^.*start/start/is; print $data, "\n\n"; } #### start start start go one end start start data start go two end #### start go one end start data start go two end