expr() and expr4() finished but not tested yet