Rule

lhs -> rhs can be used in replacement functions to say that instances of lhs should be replaced with rhs.

Attributes[Rule] := {Protected, SequenceHold}

Simple examples

In[1]:= ((2^(x^2 + 1) + x^2)) /. ((x^2 -> y))
Out[1]= 2^(y + 1) + y

To demonstrate the difference between Rule and RuleDelayed:

In[2]:= Apply[Equal, ({1, 1}) /. ((1 -> RandomReal[]))]
Out[2]= True
In[3]:= Apply[Equal, ({1, 1}) /. ((1 :> RandomReal[]))]
Out[3]= False