This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
 HoldPattern HoldPattern[ expr ] is equivalent to expr for pattern matching, but maintains expr in an unevaluated form. HoldPattern has attribute HoldAll. The left-hand sides of rules are usually evaluated, as are parts of the left-hand sides of assignments. You can use HoldPattern to stop any part from being evaluated. Example: expr /. HoldPattern[Integrate[y_, x_]] -> rhs transforms any subexpression of the form Integrate[y_, x_] in expr. Without the HoldPattern, the Integrate[y_, x_] in the rule would immediately be evaluated to give x_ y_, and the replacement would not work. Example: f[HoldPattern[Integrate[y_, x_]]] := value can be used to make an assignment for expressions of the form f[Integrate[y_, x_]]. Without HoldPattern, the Integrate function would be evaluated at the time of assignment. See the Mathematica book: Section 2.5.6. See also: Hold, Verbatim. Further Examples Patterns are not considered to be special outside the context of the pattern matcher. In[1]:= Out[1]= For instance, arithmetic operations work on patterns in the same way as on any other symbolic entity. In[2]:= Out[2]= Use HoldPattern when you want to control the evaluation of patterns. In[3]:= Out[3]=