構文を大きく左右するもののひとつはデリミタだと思います。
たとえば、
ereg('^hello', $str); preg_match('/^hello/', $str);
数字・スラッシュ・空白スペースでなければほとんど何でもデリミタとして使えますが、
いちばん使われるのは/(スラッシュ)と#(シャープ)ですね。
もちろん、マッチング括弧も使用可能ですよ。
preg_match('[^hello]', $str); preg_match('(^hello)', $str); preg_match('{^hello}', $str); // etc
使おうとしているデリミタが構文の中でほかの表現に使われていたら、重複使用を避けないといけません。
ereg('^/hello', $str); preg_match('/^/hello/', $str);
preg_quoteを使用すれば、string関数ですでに使用されているデリミタとの重複を識別できます。
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
また、PCREも使えます。
よく使用されるのはcase insensitive modefier(大文字と小文字を識別しない)で、
これはeregiの代わりに使用されます。
eregi('^hello', 'HELLO'); preg_match('/^hello/i', 'HELLO');
表現の置換関連は、POISIX regexとPCREの違いのリストを見てみるとわかりやすいと思います。
あと、PCRE構文に関してまとまっているのはやっぱりPHPマニュアルなので、
一度参照してみるといいと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。