pattern で指定した正規表現により
   subject を検索します。
  
pattern検索するパターンを表す文字列。
subject入力文字列。
matches
       matches を指定した場合、検索結果が代入されます。
       $matches[0] にはパターン全体にマッチしたテキストが代入され、
       $matches[1] には 1 番目ののキャプチャ用サブパターンにマッチした
       文字列が代入され、といったようになります。
      
flags
       flags には以下のフラグを指定できます。
       
このフラグを設定した場合、各マッチに対応する文字列のオフセットも返されます。 これにより、返り値は配列となり、配列の要素 0 はマッチした文字列、 要素 1は対象文字列中におけるマッチした文字列のオフセット値 となることに注意してください。
offset
       通常、検索は対象文字列の先頭から開始されます。
       オプションのパラメータ offset を使用して
       検索の開始位置を指定することも可能です。
      
注意:
offsetを用いるのと、 substr($subject, $offset) を preg_match()の対象文字列として指定するのとは 等価ではありません。 これは、patternには、 ^, $ や (?<=x) のような言明を含めることができるためです。 以下を比べてみてください。
<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>上の例の出力は以下となります。
 Array ( )一方、この例を見てください。
<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>出力は以下のようになります。
Array ( [0] => Array ( [0] => def [1] => 0 ) )
   preg_match() は、pattern
   がマッチした回数を返します。つまり、0 回(マッチせず)または 1 回となります。
   これは、最初にマッチした時点でpreg_match()
   は検索を止めるためです。逆にpreg_match_all()は、
   subject の終わりまで検索を続けます。
   preg_match() は、エラーが発生した場合にFALSEを返します。
  
例 3. URL からドメイン名を得る 
 上の例の出力は以下となります。 
  |