正規表現のパターンマッチングに基づく置き換えを行います。本コマンドはstringを正規表現expにマッチします。varNameという変数にコピーします。re_syntaxに記述されます。varNameが存在しなければ、このコマンドの結果)にコピーします。expにマッチした部分はsubSpecに置き換えられます。expにマッチした部分に置き換えられます。番目の括弧で括られたサブ式にマッチしたstringの部分と置き換えられます。解釈を防ぐために、subSpecの中で使うことができます。subSpec内でのバックスラッシュの使用は、Tclの分析パーサのバックスラッシュの使用に悪い影響を与えることがあります。subSpecがバックスラッシュを含んでいるなら、常にそれを中括弧で囲むことがもっとも安全です。最初の引数が「-」で始まっている場合は、スイッチとして扱われます。次のスイッチが現在サポートされています。その範囲のそれぞれに置き換えが行われます。このスイッチがない場合、最初にマッチした範囲だけが見つけ出され置き換えられます。-allが指定されると"&"と"\n"シーケンスは、各置き換えに対応するマッチでの情報を使って扱われます。-expanded空白とコメントが無視された拡張された正規表現文法の使用を可能にします。埋め込まれたオプション(re_syntaxを参照してください)を指定することに相当します。-line改行敏感なマッチングを可能にします。'[^'の括弧式そして'.'は改行に決してマッチされなく、'^'はその正常な役割に加え、いかなる改行後の空文字列にマッチします。'$'はその正常な役割に加え、いかなる改行前の空文字列にマッチします。)(re_syntaxを参照してください)を指定することに相当します。-linestop'[^'の括弧式そして'.'の振る舞いを変え、それらが改行で停止するようにします。)(re_syntaxを参照してください)を指定することに相当します。-lineanchor'^'の括弧式そして'$'を変え、それらがそれぞれ行の始めと末尾をマッチします。(?w)(re_syntaxを参照してください)を指定することに相当します。中の大文字が小文字に変換されます。subSpecによって指定された置き換えはstringから変換されていないオリジナルが使われます。index文字列で正規表現にマッチしたい最初の文字インデックスオフセットを指定します。このスイッチを使うと、'^'は行の初めにマッチしません。\Aはindexで依然文字列の始めにマッチします。--スイッチの終わりを示します。このコマンドは、varNameが与えられれば、見つけ出され置き換えられたマッチ範囲の数を返しします。置き換えされた後の文字列を返します。正規表現の解釈の詳細はregexpのマニュアルエントリを参照してください。