A flexible parameter is a parameter which accepts an argument. For example, in vfs.fs.size[*] the asterisk symbol '*' indicates a flexible parameter. '*' is any string that will be passed as an argument to the parameter. Correct definition examples:
Item key format, including key parameters, must follow syntax rules. The following illustrations depict the supported syntax. Allowed elements and characters at each point can be determined by following the arrows - if some block can be reached through the line, it is allowed, if not - it is not allowed.
To construct a valid item key, one starts with specifying the key name, then there's a choice to either have parameters or not - as depicted by the two lines that could be followed.
Key name
The key name itself has a limited range of allowed characters, which just follow each other. Allowed characters are:
Which means:
Key parameters
An item key can have multiple parameters that are comma separated.
Each key parameter can be either a quoted string, an unquoted string or an array.
The parameter can also be left empty, thus using the default value. In that case, the appropriate number of commas must be added if any further parameters are specified. For example, item key icmpping[,,200,,500] would specify that the interval between individual pings is 200 milliseconds, timeout - 500 milliseconds, and all other parameters are left at their defaults.
Parameter - quoted string
If the key parameter is a quoted string, any Unicode character is allowed, and included double quotes must be backslash escaped.
To quote item key parameters, use double quotes only. Single quotes are not supported.
Parameter - unquoted string
If the key parameter is an unquoted string, any Unicode character is allowed except comma and right square bracket (]).
Parameter - array
If the key parameter is an array, it is again enclosed in square brackets, where individual parameters come in line with the rules and syntax of specifying multiple parameters.