protected function extractRange( $definition, $min = null, $max=null )
    {
        $resultSet = array();

        if ( substr( $definition, 0, 1 ) === '*' )
        {
            // We need ranges otherwise a full set can not be created
            if ( $min === null || $max === null )
            {
                return false;
            }

            for( $i=$min; $i<=$max; ++$i )
            {
                $resultSet[] = $i;
            }

            return $resultSet;
        }

        // Remove the stepping part if it is available
        if ( ( $position = strpos( $definition, '/' ) ) !== false )
        {
            $definition = substr( $definition, 0, $position );
        }

        // Split the definition into list elements. At least one elements needs
        // to be there
        $ranges = explode( ',', $definition );

        foreach( $ranges as $range )
        {
            // There might be a '-' sign which indicates a real range, split it accordingly.
            $entries = explode( '-', $range );
            // If there is only one entry just add it to the result array
            if ( count( $entries ) === 1 )
            {
                $resultSet[] = (int)$entries[0];
            }
            // If a range is defined it needs to be calculated
            else
            {
                $high = (int)max( $entries );
                $low  = (int)min( $entries );

                for( $i=$low; $i<=$high; ++$i )
                {
                    $resultSet[] = $i;
                }
            }
        }

        return $resultSet;
    }