import re
dummyText1 = "bill: hello \nted: hello \nto you \nbill: goodbye \nted: goodbye \nto you"
#speakers = ['bill', 'ted']
#p = fr'^({"|".join(speakers)}):(.*(?:\n(?!(?:{"|".join(speakers)})).*)*)'
p = r'^((?:[^\W\d_]|[^\S\r\n])+):(.*(?:\n(?!(?:[^\W\d_]|[^\S\r\n])+:).*)*)'
print( [[x.strip(),y.replace('\n','').strip()] for x,y in re.findall(p, dummyText1, re.M)])
aW1wb3J0IHJlCmR1bW15VGV4dDEgPSAiYmlsbDogaGVsbG8gXG50ZWQ6IGhlbGxvIFxudG8geW91IFxuYmlsbDogZ29vZGJ5ZSBcbnRlZDogZ29vZGJ5ZSBcbnRvIHlvdSIKI3NwZWFrZXJzID0gWydiaWxsJywgJ3RlZCddCiNwID0gZnInXih7InwiLmpvaW4oc3BlYWtlcnMpfSk6KC4qKD86XG4oPyEoPzp7InwiLmpvaW4oc3BlYWtlcnMpfSkpLiopKiknCnAgPSByJ14oKD86W15cV1xkX118W15cU1xyXG5dKSspOiguKig/OlxuKD8hKD86W15cV1xkX118W15cU1xyXG5dKSs6KS4qKSopJwpwcmludCggW1t4LnN0cmlwKCkseS5yZXBsYWNlKCdcbicsJycpLnN0cmlwKCldIGZvciB4LHkgaW4gcmUuZmluZGFsbChwLCBkdW1teVRleHQxLCByZS5NKV0p