Fix behaviour of ^ when zero is not considered false