my @lines = <main::DATA>;
foreach my $line (@lines) {
print "[" . (($line =~ m/(?=.*?(?<!@ )(\b\w+\b)).*\(@.*\1.*\)/)? "yes" : "no") . "]\t$1\t$line\n"; }
__DATA__
abc (@ abc )
abc (@ (& abc ) )
abc (& def (@ abc ) )
(& (& abc def ) (@ abc ) )
(& def (& abc ) (@ abc ) )
abc
(@ abc )
abc (@ def )
abc (& abc)
(@ abc ) abc
(@ abc ) (@ abc )
bXkgQGxpbmVzID0gPG1haW46OkRBVEE+OwoKZm9yZWFjaCBteSAkbGluZSAoQGxpbmVzKSB7CiAgY2hvbXAoJGxpbmUpOwogIHByaW50ICJbIiAuICgoJGxpbmUgPX4gbS8oPz0uKj8oPzwhQCApKFxiXHcrXGIpKS4qXChALipcMS4qXCkvKT8gInllcyIgOiAibm8iKSAuICJdXHQkMVx0JGxpbmVcbiI7Cn0KCl9fREFUQV9fCmFiYyAoQCBhYmMgKQphYmMgKEAgKCYgYWJjICkgKQphYmMgKCYgZGVmIChAIGFiYyApICkKKCYgKCYgYWJjIGRlZiApIChAIGFiYyApICkKKCYgZGVmICgmIGFiYyApIChAIGFiYyApICkKYWJjCihAIGFiYyApCmFiYyAoQCBkZWYgKQphYmMgKCYgYWJjKQooQCBhYmMgKSBhYmMKKEAgYWJjICkgKEAgYWJjICk=