function getContextualTokenSeparator(match, scope, flags) {
    if (
        // No need to separate tokens if at the beginning or end of a group
        match.input.charAt(match.index - 1) === '(' ||
        match.input.charAt(match.index + match[0].length) === ')' ||
        // Avoid separating tokens when the following token is a quantifier
        isPatternNext(match.input, match.index + match[0].length, flags, '[?*+]|{\\d+(?:,\\d*)?}')
    ) {
        return '';
    }
    // Keep tokens separated. This avoids e.g. inadvertedly changing `\1 1` or `\1(?#)1` to `\11`.
    // This also ensures all tokens remain as discrete atoms, e.g. it avoids converting the syntax
    // error `(? :` into `(?:`.
    return '(?:)';
}
Returns a pattern that can be used in a native RegExp in place of an ignorable token such as an
inline comment or whitespace with flag x. This is used directly as a token handler function
passed to `XRegExp.addToken`.

@private
@param {String} match Match arg of `XRegExp.addToken` handler
@param {String} scope Scope arg of `XRegExp.addToken` handler
@param {String} flags Flags arg of `XRegExp.addToken` handler
@returns {String} Either '' or '(?:)', depending on which is needed in the context of the match.