line 3-17:
while 節で繰り返します。
line 4-5:
pattern を入力して、改行文字を取り除きます。
line 6
x が入力されると終了するように工夫しています。
line 7-16:
while 節で繰り返します。
line 11-15
if 節で条件分岐します。
line 10
x が入力されると終了するように工夫しています。
line 11:
条件文はパターンマッチを使っています。
$line =~ /$pattern/
最初に入力した正規表現 $pattern が、次に入力した文字列中 $line に存在すれば、 11 行目を実行します。パターンマッチに失敗すれば else ブロックが実行されます。
line 12:
特殊変数 $& が使われています。 $& は直前のぱパターンマッチで成功した文字列を蓄えている特殊変数です。
\" は、二重引用符 " をエスケープしています。