import re
string_example = "my name is (Nimrod) and my last name is (Rappaport)"
pattern = r'my name is (.+) and my last name is (.+)'
regx = re.compile(pattern)
caps = []
uncaps = []
for m in regx.finditer(string_example):
n_caps = []
n_uncaps = []
start_from = 0
for group_id in range(regx.groups):
n_caps.append(m.group(group_id+1))
n_uncaps.append(m.group()[start_from:m.start(group_id+1)-m.start()])
start_from = m.end(group_id+1)-m.start()
if start_from < len(m.group()):
n_uncaps.append(m.group()[start_from:])
caps.append(n_caps)
uncaps.append(n_uncaps)
print(caps)
print(uncaps)
aW1wb3J0IHJlCnN0cmluZ19leGFtcGxlID0gIm15IG5hbWUgaXMgKE5pbXJvZCkgYW5kIG15IGxhc3QgbmFtZSBpcyAoUmFwcGFwb3J0KSIKcGF0dGVybiA9IHInbXkgbmFtZSBpcyAoLispIGFuZCBteSBsYXN0IG5hbWUgaXMgKC4rKScKcmVneCA9IHJlLmNvbXBpbGUocGF0dGVybikKY2FwcyA9IFtdCnVuY2FwcyA9IFtdCmZvciBtIGluIHJlZ3guZmluZGl0ZXIoc3RyaW5nX2V4YW1wbGUpOgoJbl9jYXBzID0gW10KCW5fdW5jYXBzID0gW10KCXN0YXJ0X2Zyb20gPSAwCglmb3IgZ3JvdXBfaWQgaW4gcmFuZ2UocmVneC5ncm91cHMpOgoJCW5fY2Fwcy5hcHBlbmQobS5ncm91cChncm91cF9pZCsxKSkKCQluX3VuY2Fwcy5hcHBlbmQobS5ncm91cCgpW3N0YXJ0X2Zyb206bS5zdGFydChncm91cF9pZCsxKS1tLnN0YXJ0KCldKQoJCXN0YXJ0X2Zyb20gPSBtLmVuZChncm91cF9pZCsxKS1tLnN0YXJ0KCkKCWlmIHN0YXJ0X2Zyb20gPCBsZW4obS5ncm91cCgpKToKCQluX3VuY2Fwcy5hcHBlbmQobS5ncm91cCgpW3N0YXJ0X2Zyb206XSkKCWNhcHMuYXBwZW5kKG5fY2FwcykKCXVuY2Fwcy5hcHBlbmQobl91bmNhcHMpCgpwcmludChjYXBzKQpwcmludCh1bmNhcHMpCgkKCQoJCQ==