public function explode($sep)
    {
        self::mustBeString($sep, 'Separator regexp');

        if (is_object($sep)) {
            $sep = (string) $sep;
        }

        if (strlen($sep) == 0) {
            throw new \InvalidArgumentException(
                'Separator regexp must be a not null string or S instance.'
            );
        }

        $arr = preg_split($sep, $this->value);

        $cnt = count($arr);
        for ($i = 0; $i < $cnt; $i++) {
            $arr[$i] = new S($arr[$i]);
        }

        return new A($arr);
    }