re = /(?|(?:@can|hasPermissionTo|hasDirectPermission)\(\s*(?P<quote>['"])(?P<string>.*?)\1\)|\((?P<quote>['"])can:(?P<string>.*?)\1\)|\(\[[^][]*(?P<quote>['"])can:(?P<string>.*?)\1[^][]*]\))/
str = '@can(\'event-tools::menu.view\')
$this->middleware(\'can:access registration check\');
Route::prefix(\'administration\')->middleware([\'auth\', \'verified\', \'can:access admin area\'])->group(static function () {
Route::prefix(\'organisation/{organisation}\')->middleware([\'auth\', \'verified\', \'can:access organisation area\', \'mustHaveOrganisation\'])->group(static function () {'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
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 Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html