Question: finding the occurrence of an operand

I have an expression of the following structure (the real case is much more complicate but this will illustrate):

expr:=(a+q)*A+b*q*B;

I am looking for a way to change only the first occurrence of q. In my specific case, q << a so I can approximate that instance of q with 0. This I cannot do for the second occurrence of q. Note that the trivial subs(a+q=a) does not work for my real case as a is too complicated (meaning that while in principle I can do it, it looks extremely messy and in any case would not be general).

I can probably concoct something using op(#,expr) and has, but I am wondering whether there is an easier and faster way.

TIA,

Mac Dude

Please Wait...