protected function parseUri($uriString = '')
    {
        $status = @preg_match("~^((//)([^/?#]*))([^?#]*)(\?([^#]*))?(#(.*))?$~", $uriString, $matches);

        if ($status === false) {
            throw new Ts3Exception("URI scheme-specific decomposition failed");
        }

        if (!$status) {
            return;
        }

        $this->path = (isset($matches[4])) ? $matches[4] : '';
        $this->query = (isset($matches[6])) ? $matches[6] : '';
        $this->fragment = (isset($matches[8])) ? $matches[8] : '';

        $status = @preg_match(
            "~^(([^:@]*)(:([^@]*))?@)?([^:]+)(:(.*))?$~",
            (isset($matches[3])) ? $matches[3] : "",
            $matches
        );

        if ($status === false) {
            throw new Ts3Exception("URI scheme-specific authority decomposition failed");
        }

        if (!$status) {
            return;
        }

        $this->user = isset($matches[2]) ? $matches[2] : "";
        $this->pass = isset($matches[4]) ? $matches[4] : "";
        $this->host = isset($matches[5]) ? $matches[5] : "";
        $this->port = isset($matches[7]) ? $matches[7] : "";
    }