I messed up the file permissions
Add powers and roots

Since they are of equal order, but not commutative, order is important,
and right-to-left evaluation is required.  This necessitates reluctant
evaluation of non_op, causing the first operator to match first, and
that ^ and r are found in the same step.  + and - were also grouped into
one 'operator', though this is not necessary.  Multiply and divide still
have slightly different order.