code: function computeRegexp(tokens, index, firstOptional) {
      var token = tokens[index];
      if ('text' === token[0]) {
          // Text tokens
          return str.regexQuote(token[1]);
      } else {
          // Variable tokens
          if (0 === index && 0 === firstOptional) {
              // When the only token is an optional variable token, the separator is required
              return str.regexQuote(token[1]) + '(?P<' + token[3] + '>' + token[2] + ')?';
          } else {
              var regexp = str.regexQuote(token[1]) + '(?P<' + token[3] + '>' + token[2] + ')';
              if (index >= firstOptional) {
                  // Enclose each optional token in a subpattern to make it optional.
                  // "?:" means it is non-capturing, i.e. the portion of the subject string that
                  // matched the optional subpattern is not passed back.
                  regexp = "(?:" + regexp;
                  var nbTokens = tokens.length;
                  if (nbTokens - 1 == index) {
                      // Close the optional subpatterns
                      regexp += ")?".repeat(nbTokens - firstOptional - (0 === firstOptional ? 1 : 0));
                  }
              }
  
              return regexp;
          }
      }
  }
docs: Computes the regexp used to match a specific token. It can be static text or a subpattern.
  
  @param {Array}  tokens        The route tokens
  @param {Number} index         The index of the current token
  @param {Number} firstOptional The index of the first optional token
  
  @return string The regexp pattern for a single token