/*
* call-seq:
* rxp.match(str) => matchdata or nil
* rxp.match(str, begin, end) => matchdata or nil
*
* Returns a <code>MatchData</code> object describing the match, or
* <code>nil</code> if there was no match. This is equivalent to retrieving the
* value of the special variable <code>$~</code> following a normal match.
*
* ORegexp.new('(.)(.)(.)').match("abc")[2] #=> "b"
*
* The second form allows to perform the match in a region
* defined by <code>begin</code> and <code>end</code> while
* still taking into account look-behinds and look-forwards.
*
* ORegexp.new('1*2*').match('11221122').offset => [4,8]
* ORegexp.new('(?<=2)1*2*').match('11221122').offset => [4,8]
*
* Compare with:
*
* ORegexp.new('(?<=2)1*2*').match('11221122'[4..-1]) => nil
*/
static VALUE oregexp_match( int argc, VALUE * argv, VALUE self ) {