Strange regexp related javascript problem

by daybarr

HTML

<p>For stackoverflow question <a href="http://stackoverflow.com/q/4178970/445073">Strange regexp related javascript problem</a></p>
<div id="log"></div>

CSS

p {margin: 1ex 0}

JavaScript

$(function(){
    var log = function(msg) {
        $('#log').append($('<div/>').text(JSON.stringify(msg)));
    };

    // Without global flag
    var parseDate = function(datestr) {
        var dtmp = /^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$/.exec(datestr);
        log(dtmp);
    };

    // With global flag
    var parseDateGlobal = function(datestr) {
        var dtmp = /^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$/g.exec(datestr);
        log(dtmp);
    };

    var datestr = '2008-01-12';
    parseDate(datestr);       // works
    parseDate(datestr);       // works
    parseDateGlobal(datestr); // works
    parseDateGlobal(datestr); // null!
});