public function subString($start, $end = NULL) { return new StringW(mb_substr($this->string, Math::max(0, $start), Math::max(0, Math::min(Math::max(0, $end), $this->getLength() - 1)), self::UTF8)); }