Q:

regex: Check the first character AND match

I'm working on a regular expression email validation assignment and it is working pretty well. I can match based on all the criteria I'm asked to. Here is my current pattern:
^([a-zA-Z0-9.\-\_\+]+)@([a-zA-Z0-9.\-\_\+]+)$

I also want to check that it begins with an alphabetic character. So I changed my pattern to this:
^[a-zA-Z]([a-zA-Z0-9.\-\_\+]+)@([a-zA-Z0-9.\-\_\+]+)$

And that works fine and only produces the match when the first character is alphabetic. BUT, the matches that are produced cut off the first character. So for example, if I try:
Billy@bobby.com
The match for the user-id before the @ sign is coming back as "illy". I want it to come back as "Billy"
See the regex in action here: https://pythex.org/?regex=%5E%5Ba-zA-Z%5D(%5Ba-zA-Z0-9.%5C-%5C_%5C%2B%5D%2B)%40(%5Ba-zA-Z0-9.%5C-%5C_%5C%2B%5D%2B)%24&test_string=b2ill..%2B..DSD_y.23%40bobby.com&ignorecase=0&multiline=0&dotall=0&verbose=0

A:

Nick gave me the help I needed. Here was my final pattern
^([a-zA-Z][a-zA-Z0-9.-_+]+)@([a-zA-Z0-9.-_+]+[a-zA-Z])$

