Consider a set of rules, e.g.
{a -> aa, b -> bb, c -> cc, d -> dd, e -> ee}
I want to remove from this list all patterns of the form e->_ and to do so, I would like to form the Complement of matching patterns in my original set.
However if I use Cases, the description tells us that it has a special meaning, if a rule is given as second argument: The rule is applied to matching patterns after they have been identified.
Cases[{a, b, c, d, e, e}, e -> whow]
returns
{whow, whow}
because without the rule for e, {e,e} would be returned and this is transformed to {whow, whow} according to the given rule.
Now my example given above is such that the pattern to be searched for is a rule, namely
Rule[e,Blank[]]
As the explanation of Cases tells us, if a rule is input a second argument, the rule is applied to the matches. So
Cases[{a -> aa, b -> bb, c -> cc, d -> dd, e -> ee} ,
Rule[e, Blank[]]]
returns an empty set because there is no match for e (in the set on the left, there is Rule[e,ee], not a pure e without anything around it. If I put Rule[e,Blank[] under Hold, the same happens.