Python regular expression re.match, why this code does not work? [duplicate]

re.match "matches" since the beginning of the string, but there is an extra 1.

Use re.search instead, which will "search" anywhere within the string. And, in your case, also find something:

>>> re.search(pattern,s).groups()
('89059809102', '30589533')

If you remove the brackets in pattern, it will still return a valid _sre.SRE_Match, object, but with empty groups:

>>> re.search('\s\d{11}/\d{8}',s).groups()
()