This is a detail, but this regex /^([a-z][a-z\s]*[a-z])(\W+)(\d[\d-]*\d)$/i is too specific. Input file contains lines with "x=y" format, so we must only search for "=" -- see jwkrahn's contribution: Re: Swap Input lines.
Here some examples where this regex doesn't match:
Jean-Paul Goude = 22-22
Marcel Duchamp = One-Two-Two
Victoire Passage = 118_218
Philip K. Dick = 123-456