как zsolt упомянутый, некоторые regex механизмы поддерживают рекурсию - конечно, они обычно - те, которые используют алгоритм отслеживания в обратном порядке, таким образом, это не будет особенно эффективно. пример: /(?>[^{}]*){(?>[^{}]*)(?R)*(?>[^{}]*)}/sm
30 минут составляют 30 * 60 * 1000
миллисекунд. Добавьте это к текущей дате, чтобы указать дату истечения 30 минут в будущем.
var date = new Date();
var minutes = 30;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie("example", "foo", { expires: date });