In general, I know that S-expression based Lisp ones are the most powerful, also thanks to Lisp's homoiconic nature.
But in other languages that support good macro system (some of them listed here: https://en.wikipedia.org/wiki/Macro_(computer_science)#Syntactic_macros) are they equivalent or some are more powerful than others?
Does the power of the macro system depend on some feature of the language, such as the syntactic structure (like homoiconicity in the case of Lisp) or maybe on the type system?