How to define variables in PostgreSQL

This is how you can define variables in PostgreSQL, but this declaration of variables do not works on the next insert statement, I honestly do not know any good way of defining variables in PostgreSQL. Since I am from MS SQL Server background, I basically feels like this is as a downside of PostgreSQL.

WITH 
	scopeCode AS (VALUES ('PUA-DOWNLOAD')),
	scopeName AS (VALUES ('Download Excel')),
	uuidCode AS (VALUES (uuid_generate_v4()))

INSERT INTO public.user_function (code,name,"createdBy","createdAt",id) 
	VALUES ((select * from scopeCode), (select * from scopeName), 'RukshanS', Now(),  (SELECT * from uuidCode));