rule "kv"
when true
then
    set_fields(key_value(
            value: "a='1' <b>=2  \n 'c'=3 [d]=44 a=4 \"e\"=4 [f=1][[g]:3] 'h'=3=:3 i=",
            delimiters: " \t\n\r[",
            kv_delimiters: "=:",
            ignore_empty_values: true,
            trim_key_chars: "\"[]<>'",
            trim_value_chars: "']",
            allow_dup_keys: true, // the default
            handle_dup_keys: ","  // meaning concat, default "take_first"
    ));

    set_fields(key_value(
        value: "dup_first=1 dup_first=2",
        handle_dup_keys: "take_first"
    ));
    set_fields(key_value(
        value: "dup_last=1 dup_last=2",
        handle_dup_keys: "take_last"
    ));

    set_fields(key_value(
        value: "spacequote1=\"a space quote\""
    ));
    set_fields(key_value(
        value: "spacequote2=\"a space quote\"",
        trim_value_chars: "\""
    ));
    set_fields(key_value(
        value: "spacequote3='a space quote'"
    ));
    set_fields(key_value(
        value: "spacequote4='a space quote'",
        trim_value_chars: "'"
    ));
    set_fields(key_value(
        value: "spacequote5=\"a space 'quote'\"",
        trim_value_chars: "\""
    ));
    set_fields(key_value(
        value: "spacequote6='a space \"quote\"'",
        trim_value_chars: "'"
    ));
    set_fields(key_value(
        value: "spacequote7=\"it's a space 'quote'\"",
        trim_value_chars: "\""
    ));
    set_fields(key_value(
        value: "sq1=\" a \" sq2=\" b\" sq3=' c  ' sq4=\" ' d ' \" sq5=' \" e\" ' sq6='it\"s a space'",
        trim_value_chars: "\"'"
    ));
    set_fields(key_value(
        value: "dup-spacequote=\"it's a space 'quote'\" dup-spacequote=another",
        trim_value_chars: "\"",
        handle_dup_keys: "|"
    ));

    set_fields(key_value(
        value: "sq7=\"a, b\"|sq8=\"c|d\"|sq9='e| \"f, g\" | h'|sq10=\" ' i,j ' \",sq11=' \" k|\" ',sq12='l\"m n, o'",
        delimiters: ",|",
        trim_value_chars: "\"'"
    ));

    set_fields(key_value(
        value: "\"sq@1\"='space quote'@\"sq@2\"=hello",
        delimiters: "@",
        trim_key_chars: "\"",
        trim_value_chars: "'"
    ));
end
