正規表現・デバッグで詰まったところ

requestのユーザーエージェントからiOSのバージョンを抜き出す時に正規表現でハマったところを簡単にメモします。
まず正規表現を組み立てる時に以下のサイトで確かめながら作りました。
Regular Expression Test Drive Javaのmatcher.group(n) などで得られる値まで出てくるので便利です。

正規表現は上のサイトで組み立てられたのですが、デバッグモードで1行ずつ確認しながらやってたところ

if (matcher.find()){
  // コード
}

などの部分でデバッグ上ではtrueになっているのにif文の中に入ってくれないという状況がおきました。
原因としてはEclipseのデバッグモードの式の中でmatcher.find()を呼んでいたため、イテレーターが回ってコード上ではfalseになってしまったことでした。
このようにメソッドを呼び出すだけで影響を与えてしまうようなものは注意してデバッグしなければいけないなと学びました。