2008-10-01 message 1 2008-10-02 message 2 2008-10-03 multi-line message message 3 keyword 2008-10-04 message 4 2008-10-05 multi-line blah blah message 5 keyword junk 2008-10-06 message 6 blah keyword 2008-10-06 this is message 7 #### 2008-10-03 multi-line message message 3 keyword 2008-10-05 multi-line blah blah message 5 keyword junk 2008-10-06 message 6 blah keyword #### undef $/; while ( /^(\d+-\d+-\d+.*?keyword)(?!\d+-\d+)$/smg ) { print "$1\n"; }