[] denotes a character class. () denotes a capturing group.
[a-z0-9] — One character that is in the range of a-z OR 0-9
(a-z0-9) — Explicit capture of a-z0-9. No ranges.
a — Can be captured by [a-z0-9].
a-z0-9 — Can be captured by (a-z0-9) and then can be referenced in a replacement and/or later in the expression.