\s includes \n. [\s\n] can be \s on line 6, and \n can be removed from line 8.
ruby -e 'puts true if "\n".match(/\s/)'
true

On line 10 it's probably better to use a back reference to keep the same quote type: " or '.
(["'])...\3.... I believe, since it'd be the third capture group.

I believe meta key and key must exist so .+? would be more precise.

This example also fails, having an escaped quote before an equal sign in the meta key:
"breaking tests\" = " = "is this legit?";
I think this case is rare enough to leave unsupported, since (at a glance) I think you'd need a parser to fix it.