use strict; use warnings; my $start = 'start:'; my $end = 'stop:'; $_ = join '', ; @_ = m/\Q$start\E(.*?)\Q$end\E/gs; print $_[-1]; __DATA__ something start: some text stop: other text here start: again something stop: may be some text here start: and finally stop: and maybe something here