use strict; local $/; my $str = ; while ($str =~ /Message dump:((?:(?!Message dump:).)*)/gs) { print "$1"; } __DATA__ Message dump: 1=4 11:13:2006 Message dump: 1=445=3=56=23=67=23=123=12=34 11:13:2006 Message dump: output: 1=4 11:13:2006 1=445=3=56=23=67=23=123=12=34 11:13:2006