import re
string = """(2021-07-02 01:00:00 AM BST)
---
syl.hs has joined the conversation
(2021-07-02 01:00:23 AM BST)
---
e.wang
Good Morning
How're you?
(2021-07-02 01:05:11 AM BST)
---
wk.wang
Hi, I'm Good.
(2021-07-02 01:08:01 AM BST)
---
perter.derrek
we got the update on work.
It will get complete by next week.
(2021-07-15 08:59:41 PM BST)
---
ad.ft has left the conversation
---
* * *"""
regex = r'''(?x)(?m)(?s) # re.X, re.M, re.S (DOTALL)
(?: # start of non capturing group
^\(\d{4}-\d{2}-\d{2}\ \d{2}:\d{2}:\d{2}\ [AP]M\ BST\)\s*\r?\n # date and time
(?!---\s*\r?\nad\.ft has) # next lines are not the ---\n\ad.ft etc.
---\s*\r?\n # --- line
[\w.]+\s*\r?\n # name line
\s* # skip leading whitespace
) # end of non-capture group
# The folowing is capture group 1. Match characters until you get to the next date-time:
((?:(?!\s*\r?\n\(\d{4}-\d{2}-\d{2}\ \d{2}:\d{2}:\d{2}\ [AP]M\ BST\)).)*)# skip trailing whitespace
'''
matches = re.findall(regex, string)
print(matches)
aW1wb3J0IHJlCgpzdHJpbmcgPSAiIiIoMjAyMS0wNy0wMiAwMTowMDowMCBBTSBCU1QpCi0tLQpzeWwuaHMgaGFzIGpvaW5lZCB0aGUgY29udmVyc2F0aW9uCgoKCigyMDIxLTA3LTAyIDAxOjAwOjIzIEFNIEJTVCkKLS0tCmUud2FuZwpHb29kIE1vcm5pbmcKSG93J3JlIHlvdT8KCgoKCigyMDIxLTA3LTAyIDAxOjA1OjExIEFNIEJTVCkKLS0tCndrLndhbmcKSGksIEknbSBHb29kLgoKCgooMjAyMS0wNy0wMiAwMTowODowMSBBTSBCU1QpCi0tLQpwZXJ0ZXIuZGVycmVrCndlIGdvdCB0aGUgdXBkYXRlIG9uIHdvcmsuCkl0IHdpbGwgZ2V0IGNvbXBsZXRlIGJ5IG5leHQgd2Vlay4KCigyMDIxLTA3LTE1IDA4OjU5OjQxIFBNIEJTVCkKLS0tCmFkLmZ0IGhhcyBsZWZ0IHRoZSBjb252ZXJzYXRpb24KCgoKCi0tLQoKKiAqICoiIiIKCnJlZ2V4ID0gcicnJyg/eCkoP20pKD9zKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlLlgsIHJlLk0sIHJlLlMgKERPVEFMTCkKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc3RhcnQgb2Ygbm9uIGNhcHR1cmluZyBncm91cAogXlwoXGR7NH0tXGR7Mn0tXGR7Mn1cIFxkezJ9OlxkezJ9OlxkezJ9XCBbQVBdTVwgQlNUXClccypccj9cbiAgIyBkYXRlIGFuZCB0aW1lCiAoPyEtLS1ccypccj9cbmFkXC5mdCBoYXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5leHQgbGluZXMgYXJlIG5vdCB0aGUgLS0tXG5cYWQuZnQgZXRjLgogLS0tXHMqXHI/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAtLS0gbGluZQogW1x3Ll0rXHMqXHI/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuYW1lIGxpbmUKIFxzKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc2tpcCBsZWFkaW5nIHdoaXRlc3BhY2UKKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZW5kIG9mIG5vbi1jYXB0dXJlIGdyb3VwCiMgVGhlIGZvbG93aW5nIGlzIGNhcHR1cmUgZ3JvdXAgMS4gTWF0Y2ggY2hhcmFjdGVycyB1bnRpbCB5b3UgZ2V0IHRvIHRoZSBuZXh0IGRhdGUtdGltZToKKCg/Oig/IVxzKlxyP1xuXChcZHs0fS1cZHsyfS1cZHsyfVwgXGR7Mn06XGR7Mn06XGR7Mn1cIFtBUF1NXCBCU1RcKSkuKSopIyBza2lwIHRyYWlsaW5nIHdoaXRlc3BhY2UKJycnCgptYXRjaGVzID0gcmUuZmluZGFsbChyZWdleCwgc3RyaW5nKQpwcmludChtYXRjaGVzKQ==