正規表現

完全性を期すと^foo(?:(?:[-_]\d|_)_?|bar)?になるけど、これはさすがにアレだなぁ。あんまりでてこないパターンを外して^foo(?:[-_]\d?|bar)?にしてしまってもいいかもしれないね。これで引っ掛からないパターンはああまりでてこないから、そのときぐらいは手作業でやってもいい。んー、けど、やっぱり全部引っ掛けるようにしておいて、コメントに書いておけばそうアレでもないかなぁ。