Duda con patrones en pure lua

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
hola gente , estoy realizando una especie de conversor de bbcode a html y para reemplazar los tags uso patrones (intento XD) en lua .
Resulta que para el tag de youtube en la busqueda uso este codigo y este patron :

Imaginaos que usamos este bbcode para buscar patrones de tags de youtube:

Código: Seleccionar todo

bbcode =[[
[youtube]endghgf748596[/youtube]
[youtube]lkAgd-pouheg[/youtube]
[youtube]endghgf748596[/youtube]
[youtube]llpo_f748596[/youtube]
]]
Con este codigo y este patron...
s="";
for w in string.gmatch(bbcode,"%[youtube%]%w+%[/youtube%]") do
  s=s..w;
end
Debug.ShowWindow(true)
Debug.Print(s);
La clase de caracteres %w+ son para todos los caracteres alfanuméricos , por lo tanto... cuando el código de youtube tiene algún carácter de barra baja ( '_') o barra media ('-') no lo recoja el patrón , asi que en el script "s" solo me obtiene el tag 1 y el 3, mi pregunta es:
¿ como debería ser el patrón para que me obtenga los tags da igual los caracteres que lleve ?