import re
l = ['foo bar', 'foo bar foo:bar', 'foo bar ', 'foo     bar     ']
rx = re.compile(r'[^:\s]+|:|(?<=\S)(?=\s+$)')
for s in l:
	if s.rstrip() != s:
		s = s.rstrip() + " "
	print(f"'{s}'", '=>', rx.findall(s))