'Gateway for slices and getting specific indexes in the ANSIString. If
this is a regexable ANSIString, it will get the data from the raw
string instead, bypassing ANSIString\'s intelligent escape skipping,
for reasons explained in the __new__ method\'s docstring.'

def __getitem__(self, item):

    if isinstance(item, slice):
        return self._slice(item)
    try:
        self._char_indexes[item]
    except IndexError:
        raise IndexError('ANSIString    Index    out    of    range')
    if (self._char_indexes[(-1)] == self._char_indexes[item]):
        append_tail = self._get_interleving((item + 1))
    else:
        append_tail = ''
    item = self._char_indexes[item]
    clean = self._raw_string[item]
    result = ''
    for index in range(0, (item + 1)):
        if (index in self._code_indexes):
            result += self._raw_string[index]
    return ANSIString(((result + clean) + append_tail), decoded=True)
