Lieber Marcel,
[/?\d+(?<!/?[0)=[^]]+] (ungetestet!)
"Lookbehind assertion is not fixed length"
dann machen wir die assertion in ihrer Länge fix. Wir wollten ja das Zeichen vor der Zahl haben, um sicherzustellen, dass wir keine 10-er durchgehen lassen, wenn wir 0-er erlauben. Also nutzen wir doch die Character Class etwas schlauer!
Wir hatten "(?<" als lookbehind, "!" für negativ und dann "/?" für eventuellen Slash (was in lookbehind/lookahead nicht geht, weil in der Länge variabel), was insgesamt "(?<!/?zahl) ergab. Es ist uns ja prinzipiell egal, welches Zeichen vor der Zahl steht (Slash oder eckige Klammer), solange wir die Zahl komplett haben. Das kann man auch als Character Class "[[/]" schreiben: Entweder Klammer oder Slash, aber eins von beiden muss es sein.
Ergo neuer Versuch (für null): [/?\d+(?<![[/]0)=[^]]+] (wieder ungetestet!)
Und? Zufriedenheit oder Fehlverhalten?
Liebe Grüße aus Ellwangen,
Felix Riesterer.