This is not a simple problem, and there are entire companies that are trying to solve it (even for shortened matches, such as company names and the general case).
If you can identify a discrete number of patterns that include real company names, and this noise does not make it, you can solve this with a series of regular expressions.
If the patterns are complex or too numerous, you can try to develop a probabilistic model, perhaps something like a Bayesian network. You would take a subset of your data for training, and perhaps a second subset for quickly checking and developing the network. Methods may include genetic programming or the creation of a neural network. This approach is obviously not easy, and you probably want to carefully study your needs before going down this road.