use strict;
my $str = '{
"word1": "category1",
"word2": "category2",
"word3": "category3",
"word4": "category4",
"word5": "category5",
"word6": "category6",
"word7": "category7"
}';
my $regex = qr/(?'start'\{\n)|((?'line' (?U)(".*")\: (".*")(?-U),?\n))|(?'end'\})/mp;
my $subst = '${start:+CASE\\n}${line:+ WHEN $4 THEN $5\\n}${end:+ ELSE "other"\\nEND}';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html