Extract existing mentions from bio

I have a profile table with name, bio and other fields (mentions is not one of them).
How can I write a query in postgress that select all the rows based on certain condition (say name=“John Doe” in this case) and get all the mentions that is the exists in profile table.

Query Result

name bio mentions
John Doe Ex - @meta | @tesla | @abc [“meta”, “tesla”]

Profile Table

name bio
John Doe Ex - @meta, @tesla, @abc
meta We do social media
tesla We make cool stuff

I tried following query

SELECT *, ARRAY( 
    SELECT
      DISTINCT unnest(regexp_matches(p.bio, '@([a-zA-Z0-9_]+)', 'g'))
    FROM
      profile pwg
    WHERE
    pwg.id = p.id
  ) AS mentions 
  FROM profile p where name = "John Doe"

But this simply extracts all the mentions i.e [“meta”, “tesla”, “abc”].

How can I write a query that can extract only those mentions that exists in profile table ie [“meta”, “tesla”]