You could use a slightly less restrictive pattern that matches everything after the first dash:
lua Code:
("PLAYERNAME-Aggra(Português)"):gsub("%-.+", "")
You could also use the WoW-specific strsplit function:
lua Code:
(strsplit("-", "PLAYERNAME-Aggra(Português)", 2))
Note the extra set of parentheses to discard all return values except the first.