>>404
http://toro.2ch.net/test/read.cgi/tech/1313183984/751
1)最後まで一致したときに、最初の位置をどうやって返すか?
2)不一致を発見したときにどう巻き戻るか?
を考えると、サブ関数を作ってそれを再帰にする感覚で書く