В варианте регулярного выражения XML-схемы все совпадения неявно привязаны на обоих концах, поэтому вам не нужно добавлять ^
и $
. Согласно спецификации, эти два символа должны рассматриваться как буквальный текст. Но если бы это было так, ^+
в вашем регулярном выражении будет пытаться сопоставить один или несколько символов ^
, а не выбрасывать исключение.
Я подозреваю, что с ними обращаются как с якорями, несмотря на спецификацию. И нет смысла сопоставлять привязку более одного раза, поэтому +
считается ошибкой. Если подумать, в любом случае нет смысла иметь квантификатор в этой позиции; что должен был сделать +
? В любом случае, ваше регулярное выражение должно работать, если вы удалите этот символ.