正規表現に関する質問です。

■概要  
「そうですねabcの次はdefですね笑」

上記文章のdefにマッチさせる正規表現文字列をご教授下さい。

■ロジック  
`***笑` の `***` の中に存在する「最後の」半角英数文字を取り出したい。

■現在の正規表現文字列  
`([0-9a-zA-Z!-~]+)(.*)(笑)`

■現在の正規表現文字列に対するマッチ結果  
マッチ文字列 : abcの次はdefですね笑  
マッチ文字列グループ1 : abc  
マッチ文字列グループ2 : の次はdefですね  
マッチ文字列グループ3 : 笑

■質問内容  
上記グループのいずれかにdefが該当するような  
正規表現文字列を教えて下さい。  
ポイントは「最後の」です。
CC BY-SA 3.0
2016-04-10T01:37:05.427
23882
2016-04-10T05:32:41.020
2016-04-10T05:32:41.020
3054
15108
question
正規表現
最後に出現する半角英数文字を正規表現で取り出したい
> ([0-9a-zA-Z!-~]+)(.*)(笑)

上記の`(.*)`を`[0-9a-zA-Z!-~]`の否定である`([^0-9a-zA-Z!-~]*)`に変えれば良いのでは。
CC BY-SA 3.0
2016-04-10T01:55:30.190
23883
2016-04-10T01:55:30.190
5750
23882
answer