You should be able to get what your looking for by doing a double Split() like so:
First(Split(Last(Split([CLAIMS VALUE], "|")).Result, "@")).Result
If all goes according to plan, the last result of the inner split should return 'A27111@wiXXXX.onmicrosoft.com'; with the first result of the outer split then giving you 'A27111'.
Edit (6/17/2019):
I've tested it out and made some minor changes, specifically adding .Result to the end of each Split(). This will return the result as a text value for you to use.
Cheers,
Ramiro