import re r = re.compile(r'(?P a (?P b))', re.X) m = r.search('ab') for k in m.groupdict(): print k, '=>', m.group(k) # 'A => ab' # 'B => b' print m.group('A') # 'ab' print m.group('B') # 'b'