core.js
function opt(pattern, defval) {
        return new Pattern(pattern + '?', function (str, pos) {
            return pattern.exec(str, pos) || { res: defval, end: pos };
        });
    }
function opt(pattern, defval) {
        return new Pattern(pattern + '?', function (str, pos) {
            return pattern.exec(str, pos) || { res: defval, end: pos };
        });
    }
function opt ( pattern , defval ) { return new Pattern ( pattern + '?' , function ( str , pos ) { return pattern . exec ( str , pos ) || { res : defval , end : pos } ; } ) ; }
parses an optional pattern
parses an optional pattern