Your regex seems to be OK, but like @namraccr pointed out with the double quotes I think there could also be a problem with what Openhab returns when regex returns groups. Never the less… there is an alternative solution. I´ve used it in a similar situation before and I´ve modified it to your data. It is just a MESSY hint, but you can test out the following in a rule.
// get the results from the widget (simulated)
var jsonResult = "[[\"3\",\"Coschütz\",\"3\"],[\"3\",\"Wilder Mann\",\"4\"],[\"3\",\"Coschütz\",\"12\"],[\"3\",\"Wilder Mann\",\"14\"],[\"3\",\"Coschütz\",\"20\"],[\"3\",\"Wilder Mann\",\"24\"],[\"3\",\"Coschütz\",\"29\"],[\"3\",\"Wilder Mann\",\"34\"],[\"3\",\"Coschütz\",\"39\"],[\"3\",\"Wilder Mann\",\"44\"]]"
// get the number of returned elements
var Number numres = Integer.parseInt(transform("JSONPATH","$.length()",jsonResult))
var Number i = 0
var jsonPath = ""
var first_tram = ""
var found = 0
// loop through until found or end of items
while ((i < numres) && (found == 0))
{
jsonPath = String::format("$[%s][1]",i.toString())
if (transform("JSONPATH",jsonPath,jsonResult) == "Wilder Mann")
{
jsonPath = String::format("$[%s][2]",i.toString())
first_tram = transform("JSONPATH",jsonPath,jsonResult)
found = 1
}
i = i + 1
}
logInfo("The first tram is :",first_tram)