A method of efficiently performing pattern matching in a client-server network, wherein the client is communication device, and the method comprising the steps performed by the client of: acquiring an object to be matched, wherein the object is in the form of media content; extracting at least one reduced set of features from the object to be matched; generating a determination as to whether the object to be matched matches one of a plurality of known objects in a local library stored on the client; presenting an indication representing a match of the object if the determination indicates a local match exists in the local library; transmitting a match request including the at least one reduced set of features for a remote matching determination when the determination indicates that no local match exists in the local library; characterized in that the method further comprises the steps performed by the client of: progressively searching the local library for a local match of the object based on one or more additional reduced sets of features when the determination indicates a local match has not been found in the local library; extracting the one or more additional reduced sets of features from the object to be matched if the determination indicates that no local match exists in the local library; generating one or more additional determinations as to whether the at least one reduced set of features and the one or more additional reduced sets of features match one of the plurality of known objects in the local library until one of the one or more additional determinations indicates a local match exists; progressively sending match requests each including a corresponding one of the at least one reduced set of features or the one or more additional reduced sets of features to the server if one or more additional determinations indicates that no local match exists; and progressively receiving responses to the match requests, wherein the extracting of the one or more additional reduced sets of features, the generating of the one or more additional determinations, and the progressively sending of the match requests terminates when one of the responses identifies a remote matching object. acquiring an object to be matched, wherein the object is in the form of media content; extracting at least one reduced set of features from the object to be matched; generating a determination as to whether the object to be matched matches one of a plurality of known objects in a local library stored on the client; presenting an indication representing a match of the object if the determination indicates a local match exists in the local library; transmitting a match request including the at least one reduced set of features for a remote matching determination when the determination indicates that no local match exists in the local library; characterized in that the method further comprises the steps performed by the client of: progressively searching the local library for a local match of the object based on one or more additional reduced sets of features when the determination indicates a local match has not been found in the local library; extracting the one or more additional reduced sets of features from the object to be matched if the determination indicates that no local match exists in the local library; generating one or more additional determinations as to whether the at least one reduced set of features and the one or more additional reduced sets of features match one of the plurality of known objects in the local library until one of the one or more additional determinations indicates a local match exists; progressively sending match requests each including a corresponding one of the at least one reduced set of features or the one or more additional reduced sets of features to the server if one or more additional determinations indicates that no local match exists; and progressively receiving responses to the match requests, progressively searching the local library for a local match of the object based on one or more additional reduced sets of features when the determination indicates a local match has not been found in the local library; extracting the one or more additional reduced sets of features from the object to be matched if the determination indicates that no local match exists in the local library; generating one or more additional determinations as to whether the at least one reduced set of features and the one or more additional reduced sets of features match one of the plurality of known objects in the local library until one of the one or more additional determinations indicates a local match exists; progressively sending match requests each including a corresponding one of the at least one reduced set of features or the one or more additional reduced sets of features to the server if one or more additional determinations indicates that no local match exists; and progressively receiving responses to the match requests, wherein the extracting of the one or more additional reduced sets of features, the generating of the one or more additional determinations, and the progressively sending of the match requests terminates when one of the responses identifies a remote matching object.