Из документации Vim он сопоставляет шаблон правого операнда (как шаблон) внутри левого.
Для строк есть еще два элемента:
a =~ b matches with
a !~ b does not match with
Левый элемент «а» используется в качестве строки. Правильный элемент «b» используется в качестве шаблона, как то, что используется для поиска. Пример:
:if str =~ " "
: echo "str contains a space"
:endif
:if str !~ '\.$'
: echo "str does not end in a full stop"
:endif
Вы можете попробовать свои тестовые примеры снова. Я, например, не согласен с вашим:
echo ".pctestp" =~ "\.pc" 1
И двойные кавычки против одинарных кавычек, похоже, влияют на интерпретацию обратной косой черты:
echo "test.pc" =~ "\.c" 1
echo "test.pc" =~ '\.c' 0