Не уверен, что я понимаю, о чем вы спрашиваете, но попробуйте это:
[^/]+(?=/[^/]+$)
Это будет соответствовать только от второго до последнего раздела.
Объяснение:
(?x) # enable comment mode
[^/]+ # anything that is not a slash, one or more times
(?= # begin lookahead
/ # a slash
[^/]+ # again, anything that is not a slash, once or more
$ # end of line
) # end lookahead
Секция lookahead не будет включена в совпадение (группа 0) - (вы можете пропустить lookahead, но включите его содержимое, если ваш движок регулярных выражений не выполняет lookahead, тогда вам просто нужно разделить на / и получить первый пункт).
Хммм ... давно не выполнял bash regex ... возможно, вам, возможно, придется его избежать:
[^\/]+\(?=\/[^\/]+$\)