expression can be nil, empty or invalid