When you add a '?' making the second group optional, your group 1 will match as much as possible (see about Greedy or Lazy). So, in your group 1, adding a '?' like that (.*?)
will make it matches as less as possible.
Then add a $
to match until the end of the line.
1\.2\.\d\s+(.*?)(?:\s*\((\d+-\d+-\d+-[A-Z])\))?$