Para seleccionar un conjunto de páginas, como páginas que están bloqueadas, páginas a cuyo envío de correo electrónico quiere suscribirse, o páginas para combinar en un blog, el wiki utiliza una PageSpec. Ésta consiste en una expresión que se corresponde con un conjunto de páginas.

La PageSpec más simple es una lista simple de páginas. Por ejemplo, ésta se corresponde con cualquiera de las tres páginas listadas:

foo or bar or baz

A menudo querrá seleccionar cualquier página que tenga alguna particularidad en su nombre. Puede hacerlo utilizando un patrón «glob». "*" representa cualquier parte del nombre de una página, y "?" cualquier letra del nombre de una página. Así, esto se corresponde con todas las páginas sobre música, y cualquier subpágina de la zona de pruebas («SandBox»), pero no con la zona de pruebas («SandBox») misma:

*music* or SandBox/*

También puede utilizar "!" delante de un elemento para que no se incluyan las páginas que se correspondan con ese elemento. Así, para seleccionar todas las páginas excepto las de Discusión y la Zona de pruebas («SandBox»):

* and !SandBox and !*/Discussion

Se pueden añadir límites más elaborados para seleccionar páginas utilizando estas funciones:

  • "glob(someglob)" - matches pages and other files that match the given glob. Just writing the glob by itself is actually a shorthand for this function.
  • "page(glob)" - like glob(), but only matches pages, not other files
  • "link(page)" - matches only pages that link to a given page (or glob)
  • "tagged(tag)" - matches pages that are tagged or link to the given tag (or tags matched by a glob)
  • "backlink(page)" - matches only pages that a given page links to
  • "creation_month(month)" - matches only files created on the given month number
  • "creation_day(mday)" - or day of the month
  • "creation_year(year)" - or year
  • "created_after(page)" - matches only files created after the given page was created
  • "created_before(page)" - matches only files created before the given page was created
  • "internal(glob)" - like glob(), but matches even internal-use pages that globs do not usually match.
  • "title(glob)", "author(glob)", "authorurl(glob)", "license(glob)", "copyright(glob)", "guid(glob)"
    • match pages that have the given metadata, matching the specified glob.
  • "user(username)" - tests whether a modification is being made by a user with the specified username. If openid is enabled, an openid can also be put here. Glob patterns can be used in the username. For example, to match all openid users, use user(*://*)
  • "admin()" - tests whether a modification is being made by one of the wiki admins.
  • "ip(address)" - tests whether a modification is being made from the specified IP address.
  • "comment(glob)" - matches comments to a page matching the glob.
  • "comment_pending(glob)" - matches unmoderated, pending comments.
  • "postcomment(glob)" - matches only when comments are being posted to a page matching the specified glob

Por ejemplo, para seleccionar todas las páginas de un blog que enlazan a la página sobre música y que fueron escritas en 2005:

blog/* and link(música) and creation_year(2005)

Fíjese en el uso de "and" en el ejemplo anterior, que significa que sólo son seleccionadas las páginas que se corresponden con cada una de las tres expresiones. Utilice "and" cuando quiera combinar una expresión como ésa; utilice "or" cuando sea suficiente que una página se corresponda con una de las expresiones. Fíjese en que no tiene sentido decir "index and SandBox", puesto que ninguna página puede corresponderse con ambas expresiones.

También se pueden crear expresiones más complejas, utilizando paréntesis para agruparlas. Por ejemplo, para seleccionar páginas de un blog que están etiquetadas con alguna de dos etiquetas, utilice:

blog/* and (tagged(foo) or tagged(bar))

Tenga en cuenta que los nombres de página en las PageSpecs se seleccionan según los nombre de archivo absolutos de las páginas del wiki, de tal modo que una «pagespec» "foo" utilizada en la página "a/b" no seleccionará una página llamada "a/foo" o "a/b/foo". Para seleccionar de manera relativa al directorio de la página que contiene la «pagespec», puede utilizar "./". Por ejemplo, "./foo" en la página "a/b" selecciona la página "a/foo".

To indicate the name of the page the PageSpec is used in, you can use a single dot. For example, link(.) matches all the pages linking to the page containing the PageSpec.