Build a :class:`~.REMap` from the provided regular expression string.
    Each string will be associated with the index corresponding to its position
    in the argument list.

    :param re_strings: The re_strings that will serve as keys in the map.
    :param default: The value to return if none of the regular expressions match
    :param offset: The offset at which to start indexing for regular expressions
                   defaults to 1.

def IndexedREMap(*re_strings, **kwargs):
    """Build a :class:`~.REMap` from the provided regular expression string.
    Each string will be associated with the index corresponding to its position
    in the argument list.

    :param re_strings: The re_strings that will serve as keys in the map.
    :param default: The value to return if none of the regular expressions match
    :param offset: The offset at which to start indexing for regular expressions
                   defaults to 1.
    """
    default = kwargs.get('default', 0)
    offset = kwargs.get('offset', 1)
    string_index_pairs = []
    for index, string_or_tuple in enumerate(re_strings, offset):
        if isinstance(string_or_tuple, six.string_types):
            string_or_tuple = (string_or_tuple,)
        for re_string in string_or_tuple:
            string_index_pairs.append((re_string, index))
    remap = REMap.from_string_pairs(string_index_pairs,
                                    default=default)
    return remap