private function splitRanges(string $ranges): void
    {
        $matches = [];
        if (!preg_match('#^[\-|\+]{1}([0-9]+),([0-9]+) [\-\+]{1}([0-9]+),([0-9]+)$#', $ranges, $matches)) {
            throw new \RuntimeException('invalid ranges: ' . $ranges);
        }
        $this->pre  = ['from' => (int)$matches[1], 'to' => (int)$matches[2]];
        $this->post = ['from' => (int)$matches[3], 'to' => (int)$matches[4]];
    }