A finite automaton can't count, so it can't match aⁿbⁿ or balanced brackets. Add a single stack — push, pop, peek the top — and it can. These are the context-free languages: the grammars behind programming languages, and the machines that parse them.
aⁿbⁿ: push an A for each a, then pop one per b — empty exactly when the counts match. Accept when input is consumed and the stack is empty.* lives below + in the grammar, multiplication sits deeper in the tree and binds tighter. The structure is the precedence.