(?(DEFINE) (? (?&number) (?: \s* (?: (?&number) | (?&unary_op) | (?&binary_op) ) )* ) (? (?> \d+ (?: [.] \d* )? | [.] \d+ ) (?{ $^R + 1}) ) (? (?i: chs | abs | sqr | sqrt | sin | cos | tan ) (?![a-zA-Z]) ) (? [-+/*^] (?{ $^R - 1 }) ) ) \A \s* (?&expr) \s* \z (?(?{ $^R != 1 }) (*FAIL) ) }msx