diff --git a/test/test-cases/regression/variable-REQBODY_PROCESSOR.json b/test/test-cases/regression/variable-REQBODY_PROCESSOR.json
new file mode 100644
index 00000000..ff18bf01
--- /dev/null
+++ b/test/test-cases/regression/variable-REQBODY_PROCESSOR.json
@@ -0,0 +1,189 @@
+[
+ {
+ "enabled":1,
+ "version_min":300000,
+ "title":"Testing Variables :: REQBODY_PROCESSOR (1/3)",
+ "client":{
+ "ip":"200.249.12.31",
+ "port":123
+ },
+ "server":{
+ "ip":"200.249.12.31",
+ "port":80
+ },
+ "request":{
+ "headers":{
+ "Host":"localhost",
+ "User-Agent":"curl/7.38.0",
+ "Accept":"*/*",
+ "Content-Type": "text/xml"
+ },
+ "uri":"/?key=value&key=other_value",
+ "http_version":1.1,
+ "method":"POST",
+ "body": [
+ "",
+ "",
+ "",
+ "Everyday Italian",
+ "Giada De Laurentiis",
+ "2005",
+ "30.00",
+ "",
+
+ "",
+ "Harry Potter",
+ "J K. Rowling",
+ "2005",
+ "29.99",
+ "",
+
+ "",
+ "XQuery Kick Start",
+ "James McGovern",
+ "Per Bothner",
+ "Kurt Cagle",
+ "James Linn",
+ "Vaidyanathan Nagarajan",
+ "2003",
+ "49.99",
+ "",
+
+ "",
+ "Learning XML",
+ "Erik T. Ray",
+ "2003",
+ "39.95",
+ "",
+ ""
+ ]
+ },
+ "response":{
+ "headers":{
+ "Date":"Mon, 13 Jul 2015 20:02:41 GMT",
+ "Last-Modified":"Sun, 26 Oct 2014 22:33:37 GMT",
+ "Content-Type":"text/html"
+ },
+ "body":[
+ "no need."
+ ]
+ },
+ "expected":{
+ "debug_log":"Target value: \"XML\" \\(Variable: REQBODY_PROCESSOR\\)"
+ },
+ "rules":[
+ "SecRuleEngine On",
+ "SecDebugLog \/tmp\/modsec_debug.log",
+ "SecDebugLogLevel 9",
+ "SecRule REQUEST_HEADERS:Content-Type \"^text/xml$\" \"id:500005,phase:1,t:none,t:lowercase,nolog,pass,ctl:requestBodyProcessor=XML\"",
+ "SecRule REQBODY_PROCESSOR \"@contains test\" \"id:1,pass,phase:2,t:trim\""
+ ]
+ },
+ {
+ "enabled":1,
+ "version_min":300000,
+ "title":"Testing Variables :: REQBODY_PROCESSOR (2/3)",
+ "client":{
+ "ip":"200.249.12.31",
+ "port":123
+ },
+ "server":{
+ "ip":"200.249.12.31",
+ "port":80
+ },
+ "request":{
+ "headers":{
+ "Host":"localhost",
+ "User-Agent":"curl/7.38.0",
+ "Accept":"*/*",
+ "Content-Type": "multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2"
+ },
+ "uri":"/?key=value&key=other_value",
+ "http_version":1.1,
+ "method":"POST",
+ "body": [
+ "--------------------------756b6d74fa1a8ee2",
+ "Content-Disposition: form-data; name=\"name\"",
+ "",
+ "test",
+ "--------------------------756b6d74fa1a8ee2",
+ "Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
+ "Content-Type: text/plain",
+ "",
+ "This is a very small test file..",
+ "--------------------------756b6d74fa1a8ee2",
+ "Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
+ "Content-Type: text/plain",
+ "",
+ "This is another very small test file..",
+ "--------------------------756b6d74fa1a8ee2--"
+ ]
+ },
+ "response":{
+ "headers":{
+ "Date":"Mon, 13 Jul 2015 20:02:41 GMT",
+ "Last-Modified":"Sun, 26 Oct 2014 22:33:37 GMT",
+ "Content-Type":"text/html"
+ },
+ "body":[
+ "no need."
+ ]
+ },
+ "expected":{
+ "debug_log":"Target value: \"MULTIPART\" \\(Variable: REQBODY_PROCESSOR\\)"
+ },
+ "rules":[
+ "SecRuleEngine On",
+ "SecDebugLog \/tmp\/modsec_debug.log",
+ "SecDebugLogLevel 9",
+ "SecRule REQBODY_PROCESSOR \"@contains test\" \"id:1,pass,t:trim\""
+ ]
+ },
+ {
+ "enabled":1,
+ "version_min":300000,
+ "title":"Testing Variables :: REQBODY_PROCESSOR (3/3)",
+ "client":{
+ "ip":"200.249.12.31",
+ "port":123
+ },
+ "server":{
+ "ip":"200.249.12.31",
+ "port":80
+ },
+ "request":{
+ "headers":{
+ "Host":"localhost",
+ "User-Agent":"curl/7.38.0",
+ "Accept":"*/*",
+ "Content-Type": "application/x-www-form-urlencoded"
+ },
+ "uri":"/?key=value&key=other_value",
+ "http_version":1.1,
+ "method":"POST",
+ "body": [
+ "param1=value1¶m2=value2"
+ ]
+ },
+ "response":{
+ "headers":{
+ "Date":"Mon, 13 Jul 2015 20:02:41 GMT",
+ "Last-Modified":"Sun, 26 Oct 2014 22:33:37 GMT",
+ "Content-Type":"text/html"
+ },
+ "body":[
+ "no need."
+ ]
+ },
+ "expected":{
+ "debug_log":"Target value: \"URLENCODED\" \\(Variable: REQBODY_PROCESSOR\\)"
+ },
+ "rules":[
+ "SecRuleEngine On",
+ "SecDebugLog \/tmp\/modsec_debug.log",
+ "SecDebugLogLevel 9",
+ "SecRule REQBODY_PROCESSOR \"@contains test\" \"id:1,pass,t:trim\""
+ ]
+ }
+]
+
diff --git a/test/test-cases/regression/variable-REQBODY_PROCESSOR_ERROR.json b/test/test-cases/regression/variable-REQBODY_PROCESSOR_ERROR.json
new file mode 100644
index 00000000..d6525351
--- /dev/null
+++ b/test/test-cases/regression/variable-REQBODY_PROCESSOR_ERROR.json
@@ -0,0 +1,145 @@
+[
+ {
+ "enabled":1,
+ "version_min":300000,
+ "title":"Testing Variables :: REQBODY_PROCESSOR_ERROR_MSG (1/2)",
+ "client":{
+ "ip":"200.249.12.31",
+ "port":123
+ },
+ "server":{
+ "ip":"200.249.12.31",
+ "port":80
+ },
+ "request":{
+ "headers":{
+ "Host":"localhost",
+ "User-Agent":"curl/7.38.0",
+ "Accept":"*/*",
+ "Content-Type": "text/xml"
+ },
+ "uri":"/?key=value&key=other_value",
+ "http_version":1.1,
+ "method":"POST",
+ "body": [
+ "",
+ "",
+ "",
+ "Everyday Italian",
+ "Giada De Laurentiis",
+ "2005",
+ "30.00",
+ "",
+
+ "",
+ "Harry Potter",
+ "J K. Rowling",
+ "2005",
+ "29.99",
+ "",
+
+ "",
+ "XQuery Kick Start",
+ "James McGovern",
+ "Per Bothner",
+ "Kurt Cagle",
+ "James Linn",
+ "Vaidyanathan Nagarajan",
+ "2003",
+ "49.99",
+ "",
+
+ "",
+ "Learning XML",
+ "Erik T. Ray",
+ "2003",
+ "39.95",
+ "",
+ ""
+ ]
+ },
+ "response":{
+ "headers":{
+ "Date":"Mon, 13 Jul 2015 20:02:41 GMT",
+ "Last-Modified":"Sun, 26 Oct 2014 22:33:37 GMT",
+ "Content-Type":"text/html"
+ },
+ "body":[
+ "no need."
+ ]
+ },
+ "expected":{
+ "debug_log":"XML parsing error: XML: Failed parsing document"
+ },
+ "rules":[
+ "SecRuleEngine On",
+ "SecDebugLog \/tmp\/modsec_debug.log",
+ "SecDebugLogLevel 9",
+ "SecRule REQUEST_HEADERS:Content-Type \"^text/xml$\" \"id:500005,phase:1,t:none,t:lowercase,nolog,pass,ctl:requestBodyProcessor=XML\"",
+ "SecRule REQBODY_PROCESSOR_ERROR \"@contains test\" \"phase:2,id:1,pass,t:trim\"",
+ "SecRule REQBODY_PROCESSOR_ERROR_MSG \"@contains test\" \"phase:2,id:2,pass,t:trim\""
+ ]
+ },
+ {
+ "enabled":1,
+ "version_min":300000,
+ "title":"Testing Variables :: REQBODY_PROCESSOR_ERROR_MSG (2/2)",
+ "client":{
+ "ip":"200.249.12.31",
+ "port":123
+ },
+ "server":{
+ "ip":"200.249.12.31",
+ "port":80
+ },
+ "request":{
+ "headers":{
+ "Host":"localhost",
+ "User-Agent":"curl/7.38.0",
+ "Accept":"*/*",
+ "Content-Type": "multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2"
+ },
+ "uri":"/?key=value&key=other_value",
+ "http_version":1.1,
+ "method":"POST",
+ "body": [
+ "----------------------------756b6d74fa1a8ee2",
+ "Content-Disposition: form-data; name=\"name\"",
+ "",
+ "test",
+ "----------------------------756b6d74fa1a8ee2",
+ "Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
+ "Content-Type: text/plain",
+ "",
+ "This is a very small test file..",
+ "----------------------------756b6d74fa1a8ee2",
+ "Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
+ "Content-Type: text/plain",
+ "",
+ "This is another very small test file.."
+ ]
+ },
+ "response":{
+ "headers":{
+ "Date":"Mon, 13 Jul 2015 20:02:41 GMT",
+ "Last-Modified":"Sun, 26 Oct 2014 22:33:37 GMT",
+ "Content-Type":"text/html"
+ },
+ "body":[
+ "no need."
+ ]
+ },
+ "expected":{
+ "debug_log":"Multipart parsing error: Multipart: Final boundary missing."
+ },
+ "rules":[
+ "SecRuleEngine On",
+ "SecDebugLog \/tmp\/modsec_debug.log",
+ "SecDebugLogLevel 9",
+ "SecRule REQUEST_HEADERS:Content-Type \"^text/xml$\" \"id:500005,phase:1,t:none,t:lowercase,nolog,pass,ctl:requestBodyProcessor=XML\"",
+ "SecRule REQBODY_PROCESSOR_ERROR \"@contains test\" \"phase:2,id:1,pass,t:trim\"",
+ "SecRule REQBODY_PROCESSOR_ERROR_MSG \"@contains test\" \"phase:2,id:2,pass,t:trim\""
+ ]
+ }
+]
+