I tried to answer your question in a slightly simpler situation: I have
a list of positive integers, and I want to define a rule that, each time
when it is called, replaces only one of the integers of a list with 0.
The following seems to work:
In[1]:= rule:= With[{z=Unique[z]} , z=True; n_Integer /;z :>If[z,
z=False;0, n]];
{1,2,3}/. rule
{4,5,6} /.rule
Out[2]= {0,2,3}
Out[3]= {0,5,6}
Regards,
Fred Simons
Eindhoven University of Technology