my $re = qr/^(?:Nov 29 [^\n]*\n)*\z/s; print(/$re/ ? "pass\n" : "fail\n") for <<'__EOI__', <<'__EOI__'; 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 __EOI__ Nov 29 16:01:27 Nov 29 16:01:28 Nov 29 16:01:28 Nov 29 16:01:28 __EOI__ #### fail pass