SELECT code, postcode_validate(code) AS valid, postcode_validate(code) = expect AS pass FROM ( VALUES -- allow ('L1 1AA', true), ('L0 0AA', true), ('L1 0AA', true), ('L0 1AA', true), -- forbid ('L00 0AA', false), ('L00 1AA', false), ('L01 0AA', false), ('L01 1AA', false), -- unsupported ('GIR 0AA', false) ) AS sample (code, expect); code | valid | pass ---------+-------+------ L1 1AA | t | t L0 0AA | t | t L1 0AA | t | t L0 1AA | t | t L00 0AA | f | t L00 1AA | f | t L01 0AA | f | t L01 1AA | f | t GIR 0AA | f | t (9 rows)