$re = '/(?i)(\/user\d*|\/user\d*\/website|\/user\d*\/website\/(webapps|properties)|\/user\d*\/website\/(webapps|properties)\/.*)$/m';
$str = '/user2314
/user/
/userAB/
/user2334/website/
/user2314/websitetest
/user2314/website/properties
/user4601/website/properties/subfolder
/user4601/website/properties/subfolder/x
/user4601/website/properties/subfolder/x/y
/user4601/website/properties/subfolder/x/y/z
/user23114/website/NOTproperties
/user23314/website/propertiesanything
/user212314/website/webapps
/user214/website/NOTwebapps
/user4600/website/properties
/user01/website/webapps
/user02/website/properties
/user7/website/webapps
/user23/website/properties
/user32/website/properties
/user322/website/properties
/user322432523523/website/properties
/user1232/website/webapps
/user/website/properties
/notuser/website/properties
/notuser/website/properties
/user2314/notwebsite/properties
/user322432523523/website/propertiesssss
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php