expectの次のmanページの抜粋によると:
"[[-opts] pat1 body1]を期待します... [-opts] patn [bodyn]
パターンの1つが生成されたプロセスの出力と一致するか、指定された期間が経過するか、ファイルの終わりが表示されるまで待機します。最終ボディが空の場合、省略できます。
最新のexpect_beforeコマンドのパターンは、他のパターンの前に暗黙的に使用されます。最新のexpect_afterコマンドのパターンは、他のパターンの後に暗黙的に使用されます。
expect文全体の引数に複数の行が必要な場合、すべての引数を1行に「ブレース」して、各行をバックスラッシュで終了させないようにすることができます。この1つのケースでは、通常のTcl置換がブレースにかかわらず発生します。
パターンがキーワードeofである場合、対応する本文はファイルの終わりで実行されます。パターンがキーワードtimeoutの場合、対応する本文はタイムアウト時に実行されます。タイムアウトキーワードを使用しない場合、タイムアウト時に暗黙的なヌルアクションが実行されます。デフォルトのタイムアウト期間は10秒ですが、「set timeout 30」コマンドによって、たとえば30に設定できます。無限タイムアウトは、値-1で指定できます。パターンがキーワードのデフォルトである場合、対応するボディはタイムアウトまたはファイルの終わりのいずれかで実行されます。
パターンが一致すると、対応する本文が実行されます。expectは本文の結果を返します(一致するパターンがない場合は空の文字列)。複数のパターンが一致する場合、最初に表示されるパターンを使用してボディが選択されます。...」