public function setControllerObjectName($unknownCasedControllerObjectName)
    {
        $controllerObjectName = $this->objectManager->getCaseSensitiveObjectName($unknownCasedControllerObjectName);

        if ($controllerObjectName === false) {
            throw new UnknownObjectException('The object "' . $unknownCasedControllerObjectName . '" is not registered.', 1268844071);
        }

        $this->controllerPackageKey = $this->objectManager->getPackageKeyByObjectName($controllerObjectName);

        $matches = [];
        $subject = substr($controllerObjectName, strlen($this->controllerPackageKey) + 1);
        preg_match('/
			^(
				Controller
			|
				(?P<subpackageKey>.+)\\\\Controller
			)
			\\\\(?P<controllerName>[a-z\\\\]+)Controller
			$/ix', $subject, $matches
        );

        $this->controllerSubpackageKey = (isset($matches['subpackageKey'])) ? $matches['subpackageKey'] : null;
        $this->controllerName = $matches['controllerName'];
    }