in reply to Pattern Matching Question

I thought that if a (^) occurs as the first character of a character class, the character class is negated.

Exactly. So, /[^"]/ matches any character that isn't a double quote. /[^"]*/ matches zero or more characters that are not double quotes, and /"([^"]*)"/ matches a double quote (the starting delimiter), zero or more characters that aren't a double quote (the content), and then a double quote (the ending delimiter). The parens capture the content.

Abigail