The syntax for patterns used in these functions closely resembles
     Perl. The expression should be enclosed in the delimiters, a
     forward slash (/), for example.  Any character can be used for
     delimiter as long as it's not alphanumeric or backslash (\). If
     the delimiter character has to be used in the expression itself,
     it needs to be escaped by backslash. Since PHP 4.0.4, you can also use
     Perl-style (), {}, [], and <> matching delimiters.
     See Pattern Syntax
     for detailed explanation.
    
     The ending delimiter may be followed by various modifiers that
     affect the matching. 
     See Pattern
      Modifiers.
    
     PHP also supports regular expressions using a POSIX-extended syntax
     using the POSIX-extended regex functions.
    
Note: 
      This extension maintains a global per-thread cache of compiled regexes
      (up to 4096).
     
No external libraries are needed to build this extension.
  Beginning with PHP 4.2.0 these functions are enabled by default. You can
  disable the pcre functions with
  --without-pcre-regex. Use
   --with-pcre-regex=DIR to specify DIR
  where PCRE's include and library files are located, if not using bundled library.
  For older versions you have to configure and compile PHP 
  with --with-pcre-regex[=DIR] in order
  to use these functions.
 
 The windows version of PHP has built in
support for this extension. You do not need to load any additional
extension in order to use these functions.
This extension has no configuration directives defined in php.ini.
This extension has no resource types defined.
The constants below are defined by this extension, and
will only be available when the extension has either
been compiled into PHP or dynamically loaded at runtime.
Table 1. PREG constants
| constant | description | 
|---|
| PREG_PATTERN_ORDER | Orders results so that $matches[0] is an array of full pattern
      matches, $matches[1] is an array of strings matched by the first
      parenthesized subpattern, and so on. This flag is only used with
      preg_match_all(). | 
| PREG_SET_ORDER | Orders results so that $matches[0] is an array of first set of
      matches, $matches[1] is an array of second set of matches, and so
      on. This flag is only used with preg_match_all(). | 
| PREG_OFFSET_CAPTURE | See the description of
      PREG_SPLIT_OFFSET_CAPTURE.  This flag is
      available since PHP 4.3.0. | 
| PREG_SPLIT_NO_EMPTY | This flag tells preg_split() to return only non-empty
      pieces. | 
| PREG_SPLIT_DELIM_CAPTURE | This flag tells preg_split() to capture
      parenthesized expression in the delimiter pattern as well. This flag
      is available since PHP 4.0.5. | 
| PREG_SPLIT_OFFSET_CAPTURE | If this flag is set, for every occurring match the appendant string
      offset will also be returned. Note that this changes the return
      values in an array where every element is an array consisting of the
      matched string at offset 0 and its string offset within subject at
      offset 1. This flag is available since PHP 4.3.0
      and is only used for preg_split(). | 
     
| Example 1. Examples of valid patterns /<\/\w+>/|(\d{3})-\d+|Sm/^(?i)php[34]/{^\s+(\s+)?$}
 | 
    
     
| Example 2. Examples of invalid patterns 
         /href='(.*)' - missing ending delimiter
        
         /\w+\s*\w+/J - unknown modifier 'J'
        
         1-\d3-\d3-\d4| - missing starting delimiter
        
 |