code: function on_match_function(lexer) {
    var matchFunction = false;
  
    lexer.mark_rewind_point();
    // the function keyword
    lexer.skip_text('function');
  
    // an optional name
    if(lexer.on(/[a-zA-Z_$][0-9a-zA-Z_$\.]*/g)) {
      lexer.next_token(/[a-zA-Z_$][0-9a-zA-Z_$\.]*/g);
    }
  
    // now a match function is followed by a body (only),
    // not arguments then a body
    if(lexer.on('{') || lexer.on('(do')) {
      matchFunction = true;
    }
  
    lexer.rewind();
  
    return matchFunction;
  }
docs: is the function we're looking at a "match function"? (as opposed to a normal function?)