Почему неверно работает запрос?
у тебя строка должна начинаться с Petersburg
^ обозначает что проверка совпадения начинается исключительно с начала, т.е. правило /^Petersburg/ будет работать например для строки "Petersburg Saint"
$ обозначает конец. /^Petersburg$/ - полное совпадение от начала до конца
Для проверки и практики регулярок посоветую https://regexr.com/.
А вообще данную задачу думаю лучше решить с помощью стандартных функций php для работы со строками.