How to match regular expressions in Oracle?
You'd need to use regexp_like not like if you want to use regular expressions.  It sounds like you want

with x as (
    select 'A1B C2D' postal_code from dual union all
    select 'XXX 777' from dual union all
    select 'a1B 2C3' from dual
 )
 select *
   from x
  where regexp_like( postal_code, '^[A-Z][0-9][A-Z] [0-9][A-Z][0-9]$', 'i' );