Support "square bracket around @param name inside JSDoc for optional params" notation


Implements #445
You have `\s*` inside of the parentheses for `name[1]`, which makes comparing the group directly to `[` will fail (unintentionally, it appears) when there's whitespace after the opening bracket.