Разделители шаблонов (/) на обоих концах означают, что механизм регулярных выражений должен знать, где заканчивается шаблон, поэтому механизм не должен быть перепутан пробелом. Вы уверены, что с этим шаблоном что-то не так? Я подозреваю, что это наиболее вероятная проблема.
Возможно, вы захотите попробовать% 20 без экранирования%.
Еще одна вещь, которую можно попробовать - это пробел (с предыдущей обратной косой чертой).
В противном случае, вы можете попробовать использовать \ s, чтобы соответствовать пробелу - это достаточно стандартно в движках регулярных выражений (но также сопоставляет табуляции, переводы строки и возврат каретки).