import re
pattern = re.compile(r"(?P<nome>[^\s]+) (?P<capitulo>[^:]+?):(?P<versiculo>[^\s]+)")
s = "João 3:16"
m = pattern.search(s)
print m.group('nome') + ", capítulo " + m.group('capitulo') + ", versículo " + m.group('versiculo')