code: 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] : "";
      }
docs: Parses the scheme-specific portion of the URI and place its parts into instance variables.
  
  @param string $uriString
  @throws \Teamspeak3\Ts3Exception
  @return void