The problem could be that it's trying to do the longest match for the leftmost pattern. If that's the case, try changing your original
^(?P< one>.*)\\s(?P< two>.*):\\s(?P< three>.*)$
to not permit a colon among those characters -
[^:] if like regular sed regexes. For safety's sake, if there may be more than two colons in a line, do that on the second part too.