<?php
// http://stackoverflow.com/q/32969465/5290909
$pattern = '@\G(?(?=^)\{\$(\w++)#(\w++)(?=[\w/]+}$))/\K\w*+@';
$text = '{$gallery#pager/collectionName/imageName/manual/no_effect/foo1/foo2/fooN}';
if ($result === 0) {
// is invalid, does not match '~^\{\$\w+#\w+(?:/\w*)+$~'
echo "Invalid text";
} else {
// Assign vars (only to clarify)
$parameters = $matches;
echo "VAR NAME: \t'$var_name'\nMODULE: \t'$module_name'\nPARAMETERS:\n";
}
?>
PD9waHAKLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMzI5Njk0NjUvNTI5MDkwOQoKJHBhdHRlcm4gPSAnQFxHKD8oPz1eKVx7XCQoXHcrKykjKFx3KyspKD89W1x3L10rfSQpKS9cS1x3KitAJzsKJHRleHQgPSAneyRnYWxsZXJ5I3BhZ2VyL2NvbGxlY3Rpb25OYW1lL2ltYWdlTmFtZS9tYW51YWwvbm9fZWZmZWN0L2ZvbzEvZm9vMi9mb29OfSc7CgokcmVzdWx0ID0gcHJlZ19tYXRjaF9hbGwoJHBhdHRlcm4sICR0ZXh0LCAkbWF0Y2hlcyk7CgppZiAoJHJlc3VsdCA9PT0gMCkgewoJLy8gaXMgaW52YWxpZCwgZG9lcyBub3QgbWF0Y2ggJ35eXHtcJFx3KyNcdysoPzovXHcqKSskficKCWVjaG8gIkludmFsaWQgdGV4dCI7Cn0gZWxzZSB7CgkvLyBBc3NpZ24gdmFycyAob25seSB0byBjbGFyaWZ5KQoJJG1vZHVsZV9uYW1lID0gYXJyYXlfcG9wKCRtYXRjaGVzKVswXTsKCSR2YXJfbmFtZSA9IGFycmF5X3BvcCgkbWF0Y2hlcylbMF07CgkkcGFyYW1ldGVycyA9ICRtYXRjaGVzOwoJCgllY2hvICJWQVIgTkFNRTogXHQnJHZhcl9uYW1lJ1xuTU9EVUxFOiAgXHQnJG1vZHVsZV9uYW1lJ1xuUEFSQU1FVEVSUzpcbiI7CglwcmludF9yKCRtYXRjaGVzKTsKfQoKPz4=