as mentioned before - this is a messy formula
=IFERROR(MID(A1,SEARCH("@",A1,1)+1,IFERROR(SEARCH(" ",A1,SEARCH("@",A1,1)+2)-SEARCH("@",A1,1),LEN(A1)-SEARCH("@",A1,1))),"")
so we are looking to see , there is an @ in the formula - if not , then the IFERROR will return a space
then we are extracting the value after the @
using a MID ()
Mid is made up of - Cell, startnumber and number of characters
SEARCH("@",A1,1)+1
we find the @ and then add 1 - so we get the start number
Now we need to know how much to extract
we are looking for a space after the @ - but not if immediately after the @ - like "@ "
we search for a space after 2 characters of the @ - so a 2nd space SEARCH(" ",A1,SEARCH("@",A1,1)+2)
Now we have that position of the 2nd space
then back to find the position of the @
we can subtract to get the length form the @ to the space
BUT if there is no 2nd space after the @ - such as "@ 123"
then we get an error - because no 2nd space
in which case we just need to find the length of the cell text and subtract the position of the @ to get the characters to extract
I'm sure there must be a simple way to do this
you will get a space in the result if a space after the @ , which you show in your examples
=IFERROR(MID(A1,SEARCH("@",A1,1)+1,IFERROR(SEARCH(" ",A1,SEARCH("@",A1,1)+2)-SEARCH("@",A1,1),LEN(A1)-SEARCH("@",A1,1))),"")
to remove any spaces in the result leading
use
TRIM()