apply collectterms recursively



hi all,

i have following expression
(%i1) + i*y*a*r + k*w*a*r + b*w*y*r + b*i*k*r - w*y*a*t - i*k*a*t -
b*i*y*t + b*k*w*t;
(%o1) - a t w y + b r w y - b i t y + a i r y + b k t w + a k r w - a
i k t + b i k r

then i can do
(%i2) collectterms(%,r,t);
(%o2) r (b w y + a i y + a k w + b i k) + t (- a w y - b i y + b k w - a i k)

then i would like to do
(%i3) some magic to get
(%o3) r (b (w y + i k) + a (i y + k w )) + t (- a( w y + i k ) - b( i y -  k w))
i.e. i would like to apply collectterms second time to particular
parenthesed expressions.

is it somehow possible? the method should be general for variable
number of parenthesed expressions in second level. i appreciate any
help.

thanks in advance
vit mach-zizka