2009-02-02 06:12:57,500 dates processed: 2009-01-31, 2009-01-29, 2009-01-30 2009-02-18 06:03:47,713 dates processed: 2009-02-16, 2009-02-17 2009-02-19 05:58:29,138 dates processed: 2009-02-18 #### @res =$_ =~/(\d{4}-\d\d-\d\d)/g # gets them all but also from lines without 'dates processed' @res = $_ =~/(\d{4}-\d\d-\d\d).*dates processed: (\d{4}-\d\d-\d\d,? ?)*/g # only returns first of trailing list @res = $_ =~/(\d{4}-\d\d-\d\d).*dates processed: ((\d{4}-\d\d-\d\d)*)/ # gets the right number of results but the final list all the same value! #### @res = $_ =~/(\d{4}-\d\d-\d\d).*dates processed: ((\d{4}-\d\d-\d\d,? ?)*) # almost gets it but now have one too many results in the tail # due to the nested braces