a question though… the underscore at the end of character class range is not quite explained ?… i mean :
" a word character is \w which is [0-9A-Za-z_] "
i don’t understand why there is an underscore ? why not simply [0-9A-Za-z] ?