(?PPATTERN)
Далее можно найти группы с помощью их имен:
m = re.search("(?P\w+)\@(?P\w+)\.(?P\w+)", captains)
print(f'''
Email address: {m.group()}
Name: {m.group("name")}
Secondary level domain: {m.group("SLD")}
Top level Domain: {m.group("TLD")}''')
Email address: ahab@pequod.com
Name: ahab
Secondary level domain: pequod
Top level Domain: com