my $tests = [ 'Nov 29 16:01:27 Nov 29 16:01:28 Nov 29 16:01:28 Nov 29 16:01:28 Nov 29 16:01:22', 'Nov 29 16:01:27 Nov 29 16:01:28 Nov 29 16:01:28 Nov 29 16:01:28 Nov 30 16:01:22' ]; foreach my $test (@$tests) { if($test =~ qr/^((^|\n)Nov 29 [^\n]*)+$/s) { print "$test\n REGEX MATCHED\n"; } else { print "$test\n FAILED!\n"; } } __END__ Nov 29 16:01:27 Nov 29 16:01:28 Nov 29 16:01:28 Nov 29 16:01:28 Nov 29 16:01:22 REGEX MATCHED Nov 29 16:01:27 Nov 29 16:01:28 Nov 29 16:01:28 Nov 29 16:01:28 Nov 30 16:01:22 FAILED! #### qr/^(?:Nov 29 [^\n]*(\n|$))*\z/s ^^^^^^ newline or end-of-line