I want to validate a string that satisfies the below three conditions using regular expression

1. The special characters allowed are (. , \_ , - ).
2. Should contain only lower-case characters.
3. Should not start or end with special character.

To satisfy the above conditions, I have created a format as below

```
^[^\W_][a-z\.,_-]+

```

This pattern works fine up to second character. However, this pattern is failing for the 3rd and subsequent characters if those contains any special character or upper cases characters.

Example:

Pattern Works for the string S@yanthan but not for Sa@yanthan. I am expecting that pattern to pass even if the third and subsequent characters contains any special characters or upper case characters. Can you suggest me where this pattern goes wrong please? Below is the snippet of the code.

```
import re 

a = "Sayanthan"
exp = re.search("^[^\W_][a-z\.,_-]+",a)

if exp:
    print(True)
else:
    print(False)

```