What's the purpose of the first Question mark?
I'd say the correct Regex is ^[0-9a-z]*(@[0-9a-z]*)?$.
on the other hand this regex does not cover all possible valid email addresses since it does not allow for dots and dashes nor special chars in localized domains...
i have found the issue
i use this code for check when user type in a label if the entered value is OK
but the code check char by char not the full string