2012/02/08
くくり文字が1文字なら、苦労はありません。
/\[([^\[\]\s ]+)/g
文字列をくくり文字とすると、難解になります。
否定先読みを利用して抽出しています。
/\[start\]((?:(?!\[start\]|\[end\])[^\s ])+)/g
上の正規表現は、1文字のくくり文字でも有効です。
/\[((?:(?!\[|\])[^\s ])+)/g
/\[([^\[\s ]+)\]/g
/\[start\]((?:(?!\[start\])[^\s ])+)\[end\]/g