The idea is to bundle the raw data with the extracted data to sort on, do the sort, then strip out the raw data again. It would be more thoughtful to keep the sort data from earlier. The regex I use could be slimmed down, it's a first cut.

All the lines which don't match get grouped together at the start with my construction.