(.)
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 '\[(.+)\]')