try scanning backwards in _cast_or_op