Most likely due to the special characters not escaped properly (depending on where you run) or LF (0x0A) not written in the literal \n (0x5C 0x6E) in a JSON body. The following curl request worked for me.
cat sat
{
"apiAnonymous":" this is a test\n
when CLIENT_ACCEPTED {\n
log local0. \"Hello World\"\n
}"
}
curl -sku admin:admin https:///mgmt/tm/ltm/rule/satoshi -X PATCH -H "Content-Type: application/json" -d@sat
{
"apiAnonymous": " this is a test\nwhen CLIENT_ACCEPTED {\n log local0. \"Hello World\"\n}",
"fullPath": "satoshi",
"generation": 986,
"kind": "tm:ltm:rule:rulestate",
"name": "satoshi",
"selfLink": "https://localhost/mgmt/tm/ltm/rule/satoshi?ver=13.1.0"
}