Существует разница между регулярным выражением и оператором соответствия, который принимает регулярное выражение как его операнд.
У вас есть только два регулярных выражения: ^[^0-9]+$
и [^0-9]+
. Вариант 3 использует такое же регулярное выражение, как и вариант 2, но использует другую версию оператора соответствия.
Разница между 1 и 2 заключается в том, что 1 закреплен в начале и в конце строки, тогда как 2 вообще не привязан.
Итак, 1 говорит: «Сопоставьте начало строки, за которой следует одна или несколько цифр, а затем конец строки». 2 говорит, что «соответствует одному или нескольким без цифр в любой строке».
Это вообще помогает?
https://metacpan.org/pod/YAPE::Regex::Explain – toolic