rules applies a rule or list of rules in an attempt to transform each subpart of an expression expr.
Example: x + 2 /. x -> a.
ReplaceAll looks at each part of expr, tries all the rules on it, and then goes on to the next part of expr. The first rule that applies to a particular part is used; no further rules are tried on that part, or on any of its subparts.
ReplaceAll applies a particular rule only once to an expression.
Example: x /. x -> x + 1.
See the notes on Replace for a description of how rules are applied to each part of expr.
rules returns expr if none of the rules apply.
See the Mathematica book: Section 2.4.1.
See also: Rule, Set, MapAll.
ReplaceAll replaces once at all levels of the expression.
On the other hand, Replace applies only to the whole expression.
ReplaceAll applies the set of rules exactly once on each part of the expression.
ReplaceRepeated uses ReplaceAll repeatedly until the expression stops changing.