Ruby で次のコードを実行すると、次のようになります。
string = "\begin{theorem}[blaat] \label{thm:foo}"
pattern = /^\\begin\{(theorem|definition)\}(\[.+\])?\s\\label\{(thm|def):.+\}$/
if string =~ pattern then
puts "match"
else
puts "no match"
end
「一致なし」という出力が得られます。
ただし、ルビュラーで同じパターンと文字列を使用すると、一致します。上記のコードをパターンで使用すると、すでに不規則性が発生しています。
/^\\begin/
および文字列\begin
。これは上記のスニペットを使用すると一致しませんが、rubular.com では一致します
Ruby 1.9.1を使用しています