Я думаю, что вы близки - возможно, был бы циклический подход, который был бы лучше, но я склонен идти по тому пути, которым вы идете.
Я вижу, как вы делаете подчеркивание без захвата, а затем захватывает следующие символы. Вместо того, чтобы искать не-косую черту, ищите не подчеркивание. С не-косой чертой, это захватит все это в первой группе. То есть ищите подчеркивание-не подчеркивание.
Затем (переходя к реальному исправлению) каждый раздел должен быть необязательным - вышеприведенное правило требует наличия четырех разделов. Так добавить? в конце каждого, как:
RewriteRule ^climbing-frames(?:_([^_]+))(?:_([^_]+))?(?:_([^_]+))?(?:_([^_]+))?/
Я покинул первую требуемую группу, поскольку она практически должна быть там, и RewriteCond все равно проверяет ее.