The problem might be [*] when it has no [/*], can you check that?
Pretty sure * is a unary code. if you type [list][*]Test[/*][/list] you get
Plus if you take a valid list command and place it inside, say, an italic command pair, then the list command is not processed. But switch the same list and italic command statements around and it works. Eg [i][list][*]Test[/list][/i]
Looking through the code I can't see anywhere that list is treated differently (to the other open/close commands), except for that while loop in function encode(). That appears to be to handle the different versions of list (list=x) as noted in the comments, but I can't see anything there that would prevent it working at any level.
( Fails on [list][i][*]text[/i][/list] but that is arguably invalid syntax - to insert bbcodes between LIST and * - so no issue, it just happened to work on prior version. It will allow bbcodes within the individual text strings which is the correct usage. )
Will incorporate into my Enhanced BBCode and test some more.
Well pleased. Thanks!
( Barring no issues, I'll upload my Enhanced BBCode to SCM in case you want to include any of the additional BBCodes into a future DF. Note enhancement affects all related components, because as well as new icons it adds a <p> </p> by default to all text so that line-length of text can be limited via CSS - instead of letting it just stretch to match the widest img on the page, eg images over 800px wide. )