protected function computeValue($expr)
	{
		$properties = [
			'exprIsChar'         => self::IS_CHAR,
			'exprIsQuantifiable' => self::IS_QUANTIFIABLE
		];
		$value = (1 + count($this->meta)) * -pow(2, count($properties));
		foreach ($properties as $methodName => $bitValue)
		{
			if ($this->$methodName($expr))
			{
				$value |= $bitValue;
			}
		}

		return $value;
	}
protected function computeValue($expr)
	{
		$properties = [
			'exprIsChar'         => self::IS_CHAR,
			'exprIsQuantifiable' => self::IS_QUANTIFIABLE
		];
		$value = (1 + count($this->meta)) * -pow(2, count($properties));
		foreach ($properties as $methodName => $bitValue)
		{
			if ($this->$methodName($expr))
			{
				$value |= $bitValue;
			}
		}

		return $value;
	}
protected function computeValue ( $ expr ) { $ properties = [ 'exprIsChar' => self :: IS_CHAR , 'exprIsQuantifiable' => self :: IS_QUANTIFIABLE ] ; $ value = ( 1 + count ( $ this -> meta ) ) * - pow ( 2 , count ( $ properties ) ) ; foreach ( $ properties as $ methodName => $ bitValue ) { if ( $ this -> $ methodName ( $ expr ) ) { $ value |= $ bitValue ; } } return $ value ; }
Compute and return a value for given expression

Values are meant to be a unique negative integer. The last 2 bits indicate whether the
expression is quantifiable and/or represents a single character.

@param  string  $expr Regular expression
@return integer
Compute and return a value for given expression