以下の演算子はGNUで定義されている(POSIXでは定義されていない)。
このセクションの演算子は語の一部分を認識するものである。 Regexはシンタクステーブルを使ってキャラクタが語の一部分(word-constituent) であるか否かを決定する。
シンタクステーブルはあなたが使っているキャラクタセットのキャラクタで
添字付けされる配列である。したがって、ASCIIのコードを使っている
場合にはシンタクステーブルは256の要素を持つことになる。
Regexは常にchar *
variable re_syntax_table
を
シンタクステーブルであるかのように使用する。
場合によっては、この変数とその他の初期化を自分で行うことになる。
emacs
とSYNTAX_TABLE
の両方が定義されずにRegexがコンパイル
されている場合、Regexはre_syntax_table
をアロケートし、
i番目の要素に対して、iが英字、数字、もしくは`_'であれば
Sword
(定義されている)を、それ以外であればゼロをセットする。
emacs
は定義されないがSYNTAX_TABLE
を定義した状態で
Regexがコンパイルされた場合、Regexは
char *
variable re_syntax_table
がユーザによって
正しいシンタクステーブルになっていることを仮定する。
emacs
が定義されている状態でコンパイルされたときの説明は
セクション Emacs Syntax Tablesを参照を参照の事。
\b
)この演算子(`\b'で表される)は、単語の先頭か終端にある空文字列に マッチする。たとえば、`\brat\b'は独立した単語の`rat'に マッチする。
\B
)この演算子(`\B'で表される)は、単語の中にある空文字列にマッチする。 たとえば、`c\Brat\Be'は`crate'にマッチするが、 `dirty \Brat'は`dirty rat'にはマッチしない。
\<
)この演算子(`\<'で表される)は単語の先頭にある空文字列にマッチする。
\>
)この演算子(`\>'で表される)は、単語の終端にある空文字列にマッチする。
\w
)この演算子(`\w'で表される)は、単語を構成するキャラクタにマッチする。
\W
)この演算子(`\W'で表される)は、単語の構成要素にならないキャラクタに マッチする。
以下の演算子はバッファ中で働く演算子である。Emacsでは、バッファは 自然に、Emacsバッファである。他のプログラムでは、Regexは 文字列全体をバッファであるかのようにマッチングを行う。
\`
)この演算子(`\`'で表される)は、バッファの先頭にある空文字列に マッチする。
\'
)この演算子(`\''で表される)は、バッファの終端にある空文字列に マッチする。