onig_new

 SYNOPSIS
  Create an instance of a regular-expression

 USAGE
  Onig_Type onig_new (pattern [,options [,encoding [,syntax]]])

   String_Type pattern;
   Int_Type options;
   String_Type encoding;
   String_Type syntax;


 DESCRIPTION
 The `onig_new' function compiles the specified regular
 expression (`pattern') and returns the result.  The other
 parameters are optional and may be used to specify compilation
 options, the character-set encoding, and the regular expression
 syntax. Upon success, this function returns an Onig_Type
 object representing the compiled pattern.  If compilation fails, a
 `OnigError' exception will be thrown.

 The `options' parameters is a bit mapped value that may be
 formed from the bitwise-or of zero or more of the following constants:

   ONIG_OPTION_NONE
   ONIG_OPTION_IGNORECASE
   ONIG_OPTION_EXTEND
   ONIG_OPTION_MULTILINE
   ONIG_OPTION_SINGLELINE
   ONIG_OPTION_FIND_LONGEST
   ONIG_OPTION_FIND_NOT_EMPTY
   ONIG_OPTION_NEGATE_SINGLELINE
   ONIG_OPTION_DONT_CAPTURE_GROUP
   ONIG_OPTION_CAPTURE_GROUP


 The character-set encoding may be specified using one of the
 following strings:

  "ascii"         "iso_8859_1"     "iso_8859_2"   "iso_8859_3"
  "iso_8859_4"    "iso_8859_5"     "iso_8859_6"   "iso_8859_7"
  "iso_8859_8",   "iso_8859_9"     "iso_8859_10"  "iso_8859_11"
  "iso_8859_13"   "iso_8859_14"    "iso_8859_15"  "iso_8859_16"
  "utf8"          "utf16_be"       "utf16_le"     "utf32_be"
  "utf32_le"      "euc_jp"         "euc_tw"       "euc_kr"
  "euc_cn"        "sjis"           "koi8_r"       "cp1251"
  "big5"          "gb18030"

 If not specified, "utf8" will be used if the interpreter is UTF-8
 mode and "iso_8859_1" if not in UTF-8 mode.

 The regular expression syntax of the pattern may be specified by
 setting the `syntax' parameter to one of the following:

  "asis"    "posix_basic"  "posix_extended"  "emacs"
  "grep"    "gnu_regex"    "java"            "perl"
  "perl_ng" "ruby"

 If unspecified, the syntax defaults to `"perl"'.

 SEE ALSO
  onig_search, onig_nth_match, onig_nth_substr

--------------------------------------------------------------

onig_search

 SYNOPSIS
  Search a string using an Onig compiled pattern

 USAGE
  Int_Type onig_search (p, str [,start_pos, end_pos] [,option])

   Onig_Type p;
   String_Type str;
   Int_Type start_pos, end_pos;


 DESCRIPTION
 The `onig_search' function applies a pre-compiled pattern `p' to a
 string `str' and returns the result of the match.  The optional
 third and fourth arguments may be used to constrain the search region
 to the specified byte-offsets in the string.  The `option'
 parameter is also optional and may be used to control how the search
 is to be performed.  Its value may be specified as a bitwise-or of zero or
 more of the following flags:

   ONIG_OPTION_NOTBOL
   ONIG_OPTION_NOTEOL
   ONIG_OPTION_POSIX_REGION

 See the onig library documentation for more information about the meaning
 of these flags.

 Upon success, this function returns a positive integer equal to 1 plus the
 number of so-called captured substrings.  It will return 0 if the pattern
 failed to match the string.

 SEE ALSO
  onig_new, onig_nth_match, onig_nth_substr

--------------------------------------------------------------

onig_nth_match

 SYNOPSIS
  Return the location of the nth match of an onig regular expression

 USAGE
  Int_Type[2] onig_nth_match (Onig_Type p, Int_Type nth)

 DESCRIPTION
 The `onig_nth_match' function returns an integer array whose
 values specify the locations as byte-offsets to the beginning and end
 of the `nth' captured substring of the most recent call to
 `onig_search' with the compiled pattern.  A value of `nth'
 equal to 0 represents the substring representing the entire match of
 the pattern.

 If the `nth' match did not take place, the function returns NULL.

 EXAMPLE
 After the execution of:

    str = "Error in file foo.c, line 127, column 10";
    pattern = "file ([^,]+), line ([0-9]+)";
    p = onig_new (pattern);
    if (onig_search (p, str))
      {
         match_pos = onig_nth_match (p, 0);
         file_pos = onig_nth_match (p, 1);
         line_pos = onig_nth_match (p, 2);
      }

 `match_pos' will be set to `[9,29]', `file_pos' to `[14,19,]'
 and `line_pos' to `[26,29]'.  These integer arrays may be used to
 extract the substrings matched by the pattern, e.g.,

     file = substr (str, file_pos[0]+1, file_pos[1]-file_pos[0]);
     line = str[[line_pos[0]:line_pos[1]-1]];

 Alternatively, the function `onig_nth_substr' may be used to get the
 matched substrings:

     file = onig_nth_substr (p, str, 0);


 SEE ALSO
  onig_new, onig_search, onig_nth_substr

--------------------------------------------------------------

onig_nth_substr

 SYNOPSIS
  Extract the nth matched substring from an Onig regular expression search

 USAGE
  String_Type onig_nth_substr (Onig_Type p, String_Type str, Int_Type nth)

 DESCRIPTION
 This function may be used to extract the `nth' captured substring
 resulting from the most recent use of the compiled pattern `p' by
 the `onig_search' function.  Unlike `onig_nth_match', this
 function returns the specified captured substring itself and not the
 position of the substring. For this reason, the subject string of the
 pattern is a required argument.

 SEE ALSO
  onig_new, onig_search, onig_nth_match

--------------------------------------------------------------
