Why the regular season removes a letter?

Actually trying to remove extra characters from the string this regular season:
preg_replace('/([:^~|@№$–=+*&%;\[\]<>()_—""#\/]+)/i', "", $some);

But why in the text are removed all letters, both small and large.
What could be the problem?
Don't get on regexp everything is fine tested. It may be the case in the encoding?
June 5th 19 at 21:30
3 answers
June 5th 19 at 21:32
I tested the theory about "not escaped the hyphen"
if you use a hyphen _-"
the regular season is khavetsa as all the characters from _ to "
if you look at the Unicode code of the character "underscore" _, we can see that it has a U+005F sequence number = 95
a "quote", in turn, U+00AB = 171
this range includes all of Latin letters in lower case
as well as you have in the regular season is still a flag "i" is registronacional, it is for the regular season are Latin letters in Upper case also

June 5th 19 at 21:34
No In is not removed.
Added /u to work correctly with utf-8.
var_dump(preg_replace('/([:^~|@№$–=+*&%;\[\]<>()_—""#\/]+)/iu', "", "Vladimir Vladimirovich #$#!@%"));
Posner, or ...???))) - ted_Leuschke commented on June 5th 19 at 21:37
apparently, he replaced Latin Bb - nikolas.Reichert commented on June 5th 19 at 21:40
June 5th 19 at 21:36
try this regular season '[^a-zA-Z0-9a-za-Eee]+?'
I think that's enough even so
/[^a-zа-яе0-9]+?/iu - ted_Leuschke commented on June 5th 19 at 21:39

Find more questions by tags Regular expressionsPHP