もし使い捨てツールならperlつかう方が得策。
gオプション付きの正規表現をwhileループさせれば簡単に順次処理できる。

あえてPythonならこんな感じで
for m in re.finditer(regex, source): print m.span(), m.group()
これだとヒットした位置(span)から前後の読み飛ばした文字列を
じぶんで拾う必要がある。

もっとスマートのがあってもよさげだけど思いつかん。