- var_dump: documentation ( source)
- preg_match: documentation ( source)
<?php
#$pattern = "#^/([a-z]{2})/([a-zA-Z0-9_-]++)/([a-zA-Z0-9_-]++)(/[^/]+)+/$#";
#$pattern = "#^/([a-z]{2})/([a-zA-Z0-9_-]++)/([a-zA-Z0-9_-]++)/(.*/)?+[/]{0,1}$#";
$pattern = "#^/([a-z]{2})/([a-zA-Z0-9_-]++)/([a-zA-Z0-9_-]++)(/.*+)+$#";
$pattern = "#^/([a-z]{2})/([a-zA-Z0-9_-]++)/([a-zA-Z0-9_-]++)(/.*+)+$#";
$pattern = "#^/([a-z]{2})/([a-zA-Z0-9_-]++)/([a-zA-Z0-9_-]++)/(/[^/]+)+/$#";
#$pattern = "#^/([a-z]{2})/([a-zA-Z0-9_-]++)/([a-zA-Z0-9_-]++)(/.*+)?+[/]{0,1}$#";
$subject = '/en/user/login/foo/bar/';
var_dump(preg_match($pattern, $subject, $matches), $matches);
$subject = '/en/user/login';
var_dump(preg_match($pattern, $subject, $matches), $matches);