Finds the last one of the items outside of the given positions

@param {String} data The string to search
@param {Array<String>} items The items to find
@param {Number?} index The end index
@param {Array<{start: Number, end: Number}>} exclude The boundaries to exclude
@returns {{index: Number, found: String}} The found index and the found item
function findLastOutside(data, items, index, exclude) {
    var result, positionResult = {start: index ? index + 1 : data.length + 1, end: 0};

    do {
        result = findLast(data, items, positionResult.start - 1);
    } while (result.index !== -1 && (positionResult = inPosition(result.index, exclude)));
    return result;
}