Can we tokenise emailid text along with split characters in elasticsearch and prefixes tokens?

I have a use case where i want to tokenise emailId with starts with filter along with punctuations.

for example. email -

I want to know whether the the following matches for the above is possible to achieve.

on, ona, ona., ona.k,,,,,,,
.k, .ki, .ki@, .ki@g, .ki@gl, .ki@gl. , .ki@gl.c,
ki, ki@, ki@g, ki@gl, ki@gl. , ki@gl.c,
@g, @gl, @gl. , @gl.c,
gl, gl., gl.c,
.c, .co

Use case example for

ona.k - should match
na.k - should not match
.ki@ - Should match
ki@ - Should match
i@ - Should not match

The reason why i want to tokenise this way is because consider there are 2 doc with text values


When the user types on, ona, ... i want to fetch and show only not the other one.

Thanks in advance