A couple of things:
1) The brackets surrounding a filter operand are actually part of the operand itself, and indicate the kind of operand to process:
* square brackets enclose literal values
* angle brackets enclose variable references
* curly braces enclose tiddler references
Thus, you want to write: `trim:prefix<prefix>` instead of `trim:prefix[<prefix>]`
2) The `get[foo]` syntax returns the value in the field named "foo" **as a single block of text**. To handle the retrieved value as a space-separated, bracketed list of items, you should use the `enlist-input[]` filter operator, like this:
`<$list filter="[[smpConfig]get[animals]enlist-input[]"/>`
3) Your example list, retrieved from the field named "animals", seems to include trailing space for each animal name. I suggest omitting the extra spaces in the field content. Alternatively, you can use `trim:suffix[ ]` in your filter, like this:
`<$list filter="[[smpConfig]get[animals]enlist-input[]trim:suffix[ ]]"/>`
enjoy,
-e