Regex to extract selective lines
Use findAll() instead of each(). findAll() is a filter function which can be used on a Collection/Iterable or Map. It filters the result on satisfying the condition provided by the Closure parameter.

Here, you can filter String which has the desired text or does not match with the supplied regex. Using findAll is better than each because it returns the filtered collection as a result as compared to each which returns the Collection itself.

def regex = "^Line\\s(?:(\\d+)\\s)?\\s*:\\s+(\\d+)?.+"

def headErrors = errorMessages.findAll { 
    it.contains('Invoice does not foot Reported') || !(it ==~ regex) 
}

assert headErrors ==  [
    'Line : 1 Invoice does not foot Reported', 
    'cl_id is a required field', 
    'File Error : The file does not contain delimiters', 
    'lf_name is a required field'
]