What does a CONSTRAINT have to do with my unique index?
The first one is a unique constraint. It can be added to an existing table with:

ALTER TABLE ADD CONSTRAINT ...


Details in the manual here.
It is implemented using a unique index. Per documentation:


  Adding a unique constraint will automatically create a unique btree
  index on the column or group of columns used in the constraint. A
  uniqueness constraint on only some rows can be enforced by creating a partial index.


In addition it allows foreign key references to it.

The second one in a unique index.
It couldn't be a unique constraint because those only allow columns, not expressions. More details:


How does PostgreSQL enforce the UNIQUE constraint / what type of index does it use?
Discussion on pgsql-general about the difference between constraint and index.