#1012: Inconsistent Regex behaviour -------------------------------------------+-------------------------------- Reporter: harry@… | Owner: lsansonetti@… Type: defect | Status: reopened Priority: minor | Milestone: Component: MacRuby | Resolution: Keywords: | -------------------------------------------+-------------------------------- Comment(by watson1978@…): I attach a patch: {{{ #!diff diff --git a/re.c b/re.c index 22514a2..3ff54c7 100644 --- a/re.c +++ b/re.c @@ -1829,7 +1829,18 @@ rb_reg_match_last(VALUE rcv) return Qnil; } assert(RMATCH(rcv)->results_count > 0); - return rb_reg_nth_match(RMATCH(rcv)->results_count - 1, rcv); + + int nth = RMATCH(rcv)->results_count - 1; + while(nth > 0) { + if (RMATCH(rcv)->results[nth].beg != -1) { + break; + } + nth--; + } + if (nth == 0) { + return Qnil; + } + return rb_reg_nth_match(nth, rcv); } /* }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1012#comment:14> MacRuby <http://macruby.org/>