Sort results of a query by the order of OR clause
There are two ways to do this in Postgres:

Join your table against a virtual table build from a values list:

with names (idx, name) as (
  values 
    (1, 'example.co.uk'), 
    (2, 'co.uk'), 
    (3, 'uk')
)
select s.*
from suffixes s
  join names n on n.name = s.name
order by n.idx
limit 1;


Another shorter version would be to join against an array:

select s.*
from suffixes s
  join unnest(array['example.co.uk', 'uk', 'co.uk']) with ordinality as n(name, idx) 
    on n.name = s.name
order by n.idx
limit 1


The second version has the advantage, that you don't need to supply the additional index because that's implicitly defined through the order of the values inside the array.