Если этот код запустить в консоли браузера
const reg = /^#$/g;
[reg.test('#'),reg.test('#'),reg.test('#'),reg.test('#')]
то получим
[ false, true, false, true ]
Источник: Axel Rauschmayer — в комментах можно найти объяснение такого поведения.