@classmethod
def _get_value_from_string(cls, string):
    """
        Receives a left stripped string, identifies the heading value, decodes it,
        and returns a tuple (key, rest of the string)

        :param unicode string: substring of connection string
        :returns: rest of string left stripped and without any leading ';'
        :rtype: unicode
        :raises: ValueError

        """
    first = string[0]
    if first not in cls._quotes:
        value, _, string = string.partition(';')
        return value.rstrip(), string
    start = 1
    while True:
        pos = string.find(first, start)
        if pos == -1:
            raise ValueError('Token delimiter not found: "%s"' % first)
        if string[pos] == string[pos + 1]:
            start = pos + 2
            continue
        value, rest = string[:pos + 1], string[pos + 1:]
        return cls._decode_value(value.rstrip()), rest.lstrip(' ;')
