OneIdentity
a /. f[x_:0, u_] -> {u}
Here is how OneIdentity
changes the pattern matched above :
SetAttributes[f, OneIdentity]
a /. f[x_:0, u_] -> {u}
However, without a default argument, the pattern does not match:
a /. f[u_] -> {u}
OneIdentity
does not change evaluation:
f[a]