Wildcards with API calls Please can someone help!

e.g. I am trying to get a list of only the queue items that have queue Name starting with “John”

This syntax will return only queue list items that have queue name equal to “John”

“?name=John”
(To accomplish this in terminal this is the command: /queue simple :put [find where name=“John”])
(And this is correct syntax for wildcard use in terminal command /queue simple :put [find where name~“John*”])

HOWEVER…

I expect the following API call syntax to return all queue list items that have queue name starting with “John” but it does not return any data. I just get the “!done” return string which means no data returned.

“?=name~John*”

I have also tried
“?=name~^John*”
“?name~John*”
“?~name~John*”
“?~name=John*”
“~name~John*”
…and hundreds more
But nothing works. Wasted a whole day. Feels like I am now fumbling around in the dark.

I found this article from many moons ago but all the regex’s and terminations are a totally confusing - http://forum.mikrotik.com/t/scripting-find-with-wildcard/69243/1

So the question is, where is my syntax wrong? Or does this only work in ROS 7+?

I am just pulling my hair out trying to find the correct syntax for specifying a wildcard in parameter for an API call to only get some rows back from a /getall call. I don’t want all the rows back because it is too much data and causes an overflow error.

Is there anybody out there and and help me with correct syntax. Desperately please?

All API supported queries are described in the manual:
https://help.mikrotik.com/docs/spaces/ROS/pages/47579160/API#API-Queries