subtitle: fix end regex group retrieval (#677)

Nested regex groups are counted from left to right:
(group1 (group2)) (group3)
Therefore the end group boolean should have checked group 3 before 2 and
not the other way round.
Change the TIMECODE_RE in such a way the the start group _always_
contains a nested group. This not only makes the regex more compact, but
it is also safer as we never accidentally retrieve (.*) at eol:

/^(([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3}) --\> (([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3})(.*)/;
  -( group2  ).....-----group1----------      -( group4  ).....-----group3----------