re.searchは別関数にしたいとは常々感じてる
m.groups() を返してくれると有り難い
マッチしなかったら[]を返すようにすれば、ifにそのまま入れられる筈

なんで正規表現回りこんなに不便なんだろう