<?php
$string = "/^bla\/bla\/bla\//i";
$patterns = array(
"/\/\^([\w]+)/i" => "$1/",
"/[\/]{2,}i$/i" => "/",
"/\\\/" => "",
"/[\/]{2,}/" => "/",
"/\/$/" => "",
);
echo preg_replace(array_keys($patterns),$patterns,$string);
//OR, this:
echo "\n";
$string = "/^bla\/bla\/bla\//i";
$pattern = "/(?![\/\w]$)([\w]+)/";
preg_match_all($pattern,$string,$matches);
echo join('/',$matches[0]);
?>