most modern programming languages are turing-complete. there are languages that are used to classify and describe the contents of documents; for example html. html is not turing complete, because it cannot actively change the state of the system. html can be combined with a technology such as javascript; both together can be made turing complete. the standard regular expressions, which most programming languages use, are not turing complete either. most regular expression engines have been adapted to include back-references. the problem with this is that a finite automaton cannot handle back references.