Итак, задача: дана строка с переменным количеством символов. В ней могут встречаться символы: "a","b","/" в произвольном порядке. Нужно проверить, чтобы перед "b" было ноль или четное количество слешей. Вот, собственно, и все :)
Решения:
# Мое решение. Проверяет: сперва идет либо b, либо a, либо начало строки
# затем 0 или любое четное количество слешей. Затем еще слеш, затем b.
# выражение проверяет ложность. Если строка соответствует - количество слешей нечетно.
(?:b|a|^)(?:\/\/)*\/b
#exp
#очень похожее решение на мое. Только слэш проверяется ДО парного.
(?<!/)(?:/{2})*(b)
#Pavel M
# Тоже верное решение моего читателя.
^(?:[^/]++|(?:/)++[^b]|(?://)*+(?:b) )*$