import re
string = """
PIC S9(02)V9(05). I need this result "02 05"
PIC S9(04). I need this result "04"
PIC S9(03). I need this result "03"
PIC S9(03)V9(03). I need this result "03 03"
PIC S9(02)V9(03). I need this result "02 03"
PIC S9(04). I need this result "04"
PIC S9(13)V9(03). I need this result "13 03"
"""
rx = re.compile(
r"""
\((\d+)\) # match digits in parentheses
[^\n(]+ # match anything not a newline or another opening parenthesis
(?:\((\d+)\))? # eventually match another group of digits in parentheses
""", re.VERBOSE)
for match in re.finditer(rx, string):
if match.group(2):
m = ' '.join([match.group(1),match.group(2)])
else:
m = match.group(1)
print m
aW1wb3J0IHJlCgpzdHJpbmcgPSAiIiIKUElDIFM5KDAyKVY5KDA1KS4gICAgSSBuZWVkIHRoaXMgcmVzdWx0ICIwMiAwNSIKUElDIFM5KDA0KS4gICAgICAgICAgSSBuZWVkIHRoaXMgcmVzdWx0ICIwNCIKUElDIFM5KDAzKS4gICAgICAgICAgSSBuZWVkIHRoaXMgcmVzdWx0ICIwMyIKUElDIFM5KDAzKVY5KDAzKS4gICAgSSBuZWVkIHRoaXMgcmVzdWx0ICIwMyAwMyIgClBJQyBTOSgwMilWOSgwMykuICAgIEkgbmVlZCB0aGlzIHJlc3VsdCAiMDIgMDMiClBJQyBTOSgwNCkuICAgICAgICAgIEkgbmVlZCB0aGlzIHJlc3VsdCAiMDQiICAKUElDIFM5KDEzKVY5KDAzKS4gICAgSSBuZWVkIHRoaXMgcmVzdWx0ICIxMyAwMyIKIiIiCnJ4ID0gcmUuY29tcGlsZSgKCXIiIiIKCVwoKFxkKylcKQkJIyBtYXRjaCBkaWdpdHMgaW4gcGFyZW50aGVzZXMKCVteXG4oXSsJCQkjIG1hdGNoIGFueXRoaW5nIG5vdCBhIG5ld2xpbmUgb3IgYW5vdGhlciBvcGVuaW5nIHBhcmVudGhlc2lzCgkoPzpcKChcZCspXCkpPwkjIGV2ZW50dWFsbHkgbWF0Y2ggYW5vdGhlciBncm91cCBvZiBkaWdpdHMgaW4gcGFyZW50aGVzZXMKCSIiIiwgcmUuVkVSQk9TRSkKCmZvciBtYXRjaCBpbiByZS5maW5kaXRlcihyeCwgc3RyaW5nKToKCWlmIG1hdGNoLmdyb3VwKDIpOgoJCW0gPSAnICcuam9pbihbbWF0Y2guZ3JvdXAoMSksbWF0Y2guZ3JvdXAoMildKQoJZWxzZToKCQltID0gbWF0Y2guZ3JvdXAoMSkKCXByaW50IG0K