Q:

Reordering using Patterns in Mathematica

Trying to do this :
list={{{33, 105, 203, 295}, {34, 106, 204, 296}}, 
      {{21, 135, 201, 333}, {22,136, 202, 334}}}

I would like to transform sublists so that the first one:
{{33, 105, 203, 295}, {34, 106, 204, 296}}
becomes
{{33, 204, 106, 295}, {34, 106, 105, 296}}
I don`t understand what I am doing wrong in the following :
list /. {{a_,b_,c_,d_}, {e_,f_,g_,h_}} :> 
        {{a_,g_,f_,d_}, {e_,c_,b_,h_}}

EDIT
Thanks to Leonid`s Comment, the below now works 
 list /. {{a_,b_,c_,d_}, {e_,f_,g_,h_}} :> 
         {{a,g,f,d}, {e,c,b,h}}

If somebody knows a better way to do this, don`t hesitate. 

A:

As Leonid wrote, but declined to post as an answer, your pattern works once it is corrected:
list /. {{a_,b_,c_,d_}, {e_,f_,g_,h_}} :> {{a, g, f, d}, {e, c, b, h}}

This is the most direct way to accomplish this task, but as Leonid also wrote, it is not the most general.  Here is another way, admittedly without patterns, that you might approach this:
orderBy[list_, order_] := Partition[Flatten[#][[order]], 4] & /@ list

orderBy[list, {1, 7, 6, 4, 5, 3, 2, 8}]

This allows you to specify the reordering as a simple permuation, easily written by hand, or generated with RandomeSample@Range@8.
If your data has more variety of shape, this can be extended with different Partition parameters, etc.

