6.5 パターンにn番目にマッチする文字列を見つける

/g修飾子とwhileループを使用して、マッチした回数をカウントしていきます。

$WANT = 3;
$count = 0;
while (/(\w+)\s+fish\b/gi) { 
  if (++$count == $WANT) {
    print "The third fish is a $1 one.\n";
    # 注意: このループをlastで抜けてはならない
  }
}

繰り返しカウントと繰り返しパターンを使用する

/(?:\w+\s+fish\s+){2}(\w+)\s+fish/i;