Non credo che la vera risposta sia semplice come vorresti. La breve (e incompleta) risposta è semplicemente "tutte le espressioni vengono valutate da sinistra a destra" ...
Per la risposta a lungo andare qui.
http://msdn.microsoft.com/en-us/library/e347654k.aspx
Il motore delle espressioni regolari NET Framework è un backtracking regolare espressione matcher che incorpora un motore tradizionale non deterministico Finite Automaton (NPC) ... motori tradizionali NFA eseguono pattern matching, loro l'ordine di elaborazione è guidato dal modello di espressione regolare. Mentre elabora un particolare elemento di linguaggio, il motore utilizza una corrispondenza avara; cioè, corrisponde alla maggior parte della stringa di input il più possibile. Ma salva anche il suo stato dopo il che soddisfa correttamente una sottoespressione. Se una corrispondenza fallisce, il motore può tornare a uno stato salvato in modo che possa provare altre corrispondenze .
Modifica: Hai dimenticato di rispondere alla seconda parte della tua domanda.
Per quanto riguarda RegexOptions.ECMAScript, è possibile fare riferimento questi documenti:
http://msdn.microsoft.com/en-us/library/yd1hzczs.aspx
Il comportamento di ECMAScript e le espressioni regolari canoniche differisce in tre aree: sintassi classe di caratteri, di auto-riferimento acquisizione di gruppi e interpretazione ottale rispetto a backreference.
Non sembra che "l'ordine" sia interessato, ma potrebbero esserci altri problemi. I documenti fanno un buon lavoro di illustrare le differenze.
fonte
2012-02-28 16:08:59
È possibile vedere l'espressione che ti confonde? – zerkms
La precedenza è uguale a quella nel collegamento JScript: gli operatori unari eseguono il binding più stretto, quindi la concatenazione, quindi l'alternanza. Le staffe funzionano come ti aspetteresti. – porges
@zerkms, sto scrivendo espressioni e voglio sapere quando ho bisogno di parenti. Porges, è quello che spero, ma mi piacerebbe vederlo documentato. Se non lo è, presenterò un bug Connect. –