(.) corresponde apenas a um único caractere, mas você deseja corresponder vários caracteres lá. Então você precisa de
(.+) substring('Product Description [White]' from '\[(.+)\]')
(.) corresponde apenas a um único caractere, mas você deseja corresponder vários caracteres lá. (.+) substring('Product Description [White]' from '\[(.+)\]')